资源简介
内含成功实验的工程代码。外加分析过程和截图。
使用了GPSRS模块、GPS模块、GSM模块以及ADXL345模块,完成摔倒检测、定位及短信报警功能。
代码片段和文件信息
/**
******************************************************************************
* @file adc.c
* @author YANDLD
* @version V2.4
* @date 2013.5.23
* @brief 超核K60固件库 ADC模块驱动
******************************************************************************
*/
#include “adc.h“
static uint8_t ADC_Cal(ADC_Type *ADCx);
/***********************************************************************************************
功能:初始化ADC模块
形参:ADC_InitStruct: ADC初始化结构
返回:0
详解:0
************************************************************************************************/
void ADC_Init(ADC_InitTypeDef* ADC_InitStruct)
{
ADC_MapTypeDef *pADC_Map = (ADC_MapTypeDef*)&ADC_InitStruct->ADCxMap;
PORT_Type *ADC_PORT = NULL;
ADC_Type *ADCx = NULL;
//参数检查
assert_param(IS_ADC_PRECISION(IS_ADC_PRECISION(ADC_InitStruct->ADC_Precision)));
//找到对应的GPIO 并配置为ADC模式
if(pADC_Map->ADC_IsAnalogChl == 0) //如果是普通GPIO 的ADC通道
{
switch(pADC_Map->ADC_GPIO_Index)
{
case 0:
SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;
ADC_PORT = PORTA;
break;
case 1:
SIM->SCGC5 |= SIM_SCGC5_PORTB_MASK;
ADC_PORT = PORTB;
break;
case 2:
SIM->SCGC5 |= SIM_SCGC5_PORTC_MASK;
ADC_PORT = PORTC;
break;
case 3:
SIM->SCGC5 |= SIM_SCGC5_PORTD_MASK;
ADC_PORT = PORTD;
break;
case 4:
SIM->SCGC5 |= SIM_SCGC5_PORTE_MASK;
ADC_PORT = PORTE;
break;
default:break;
}
//配置对应引脚为ADC模式
ADC_PORT->PCR[pADC_Map->ADC_Pin_Index] &= ~PORT_PCR_MUX_MASK;
ADC_PORT->PCR[pADC_Map->ADC_Pin_Index] |= PORT_PCR_MUX(pADC_Map->ADC_Alt_Index);
}
//找出ADC端口
switch(pADC_Map->ADC_Index)
{
case 0:
SIM->SCGC6 |= SIM_SCGC6_ADC0_MASK;
//SIM->SOPT7 &= ~(SIM_SOPT7_ADC0ALTTRGEN_MASK | SIM_SOPT7_ADC0PRETRGSEL_MASK);
//SIM->SOPT7 = SIM_SOPT7_ADC0TRGSEL(0);
ADCx = ADC0;
break;
case 1:
SIM->SCGC3 |= SIM_SCGC3_ADC1_MASK;
//SIM->SOPT7 &= ~(SIM_SOPT7_ADC1ALTTRGEN_MASK | SIM_SOPT7_ADC1PRETRGSEL_MASK);
//SIM->SOPT7 = SIM_SOPT7_ADC1TRGSEL(0);
ADCx = ADC1;
break;
default:break;
}
//配置转换精度
ADCx->CFG1 &= ~(ADC_CFG1_MODE_MASK);
ADCx->CFG1 |= ADC_CFG1_MODE(ADC_InitStruct->ADC_Precision);
//输入时钟源位BusClock
ADCx->CFG1 &= ~ADC_CFG1_ADICLK_MASK;
ADCx->CFG1 |= ADC_CFG1_ADICLK(0);
//快速采样
ADCx->CFG1 &= ~ADC_CFG1_ADLSMP_MASK;
//配置ADC分频 最低分频
ADCx->CFG1 &= ~ADC_CFG1_ADIV_MASK;
ADCx->CFG1 |= ADC_CFG1_ADIV(3);
//设置 A或者B通道
ADCx->CFG2 = 0;
if(pADC_Map->ADC_IsChlAB == 0)
{
ADCx->CFG2 &= ~ADC_CFG2_MUXSEL_MASK;
}
else
{
ADCx->CFG2 |= ADC_CFG2_MUXSEL_MASK;
}
//其他杂项配置
ADCx->CFG2 |= (ADACKEN_DISABLED|ADHSC_HISPEED|ADC_CFG2_ADLSTS(ADLSTS_20));
ADCx->CV1 = 0x1234u;
ADCx->CV2 = 0x5678u;
ADCx->SC2 = (ACFE_DISABLED|ACFGT_GREATER|ACREN_ENABLED|DMAEN_DISABLED| ADC_SC2_REFSEL(REFSEL_EXT));
ADCx->SC3 = (CAL_OFF|ADCO_SINGLE|AVGE_ENABLED|ADC_SC3_AVGS(AVGS_32));
ADCx->PGA = (PGAEN_DISABLED|PGACHP_NOCHOP|PGALP_NORMAL|AD
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-29 21:53 practice\
目录 0 2017-11-18 17:16 practice\2017.11.13\
目录 0 2017-11-18 17:16 practice\2017.11.13\OBJ\
文件 327308 2017-10-21 21:39 practice\2017.11.13\OBJ\adc.crf
文件 495 2017-10-21 21:39 practice\2017.11.13\OBJ\adc.d
文件 291748 2017-10-21 21:39 practice\2017.11.13\OBJ\adc.o
文件 328206 2017-10-21 21:39 practice\2017.11.13\OBJ\can.crf
文件 495 2017-10-21 21:39 practice\2017.11.13\OBJ\can.d
文件 293332 2017-10-21 21:39 practice\2017.11.13\OBJ\can.o
文件 323498 2017-10-21 21:39 practice\2017.11.13\OBJ\dac.crf
文件 495 2017-10-21 21:39 practice\2017.11.13\OBJ\dac.d
文件 289088 2017-10-21 21:39 practice\2017.11.13\OBJ\dac.o
文件 319273 2017-10-21 21:39 practice\2017.11.13\OBJ\delay.crf
文件 523 2017-10-21 21:39 practice\2017.11.13\OBJ\delay.d
文件 284860 2017-10-21 21:39 practice\2017.11.13\OBJ\delay.o
文件 325725 2017-10-21 21:39 practice\2017.11.13\OBJ\dma.crf
文件 495 2017-10-21 21:39 practice\2017.11.13\OBJ\dma.d
文件 290144 2017-10-21 21:39 practice\2017.11.13\OBJ\dma.o
文件 337334 2017-10-21 21:39 practice\2017.11.13\OBJ\enet.crf
文件 691 2017-10-21 21:39 practice\2017.11.13\OBJ\enet.d
文件 302364 2017-10-21 21:39 practice\2017.11.13\OBJ\enet.o
文件 320928 2017-10-21 21:39 practice\2017.11.13\OBJ\flash.crf
文件 523 2017-10-21 21:39 practice\2017.11.13\OBJ\flash.d
文件 285960 2017-10-21 21:39 practice\2017.11.13\OBJ\flash.o
文件 325770 2017-10-21 21:39 practice\2017.11.13\OBJ\ftm.crf
文件 495 2017-10-21 21:39 practice\2017.11.13\OBJ\ftm.d
文件 292148 2017-10-21 21:39 practice\2017.11.13\OBJ\ftm.o
文件 327253 2017-10-21 21:39 practice\2017.11.13\OBJ\gpio.crf
文件 509 2017-10-21 21:39 practice\2017.11.13\OBJ\gpio.d
文件 293748 2017-10-21 21:39 practice\2017.11.13\OBJ\gpio.o
文件 325506 2017-10-21 21:39 practice\2017.11.13\OBJ\i2c.crf
............此处省略903个文件信息
相关资源
- AfterCodecs v1.5.0一键安装版 带汉化
- DevExpress CodeRush v12.1 破解版
- 基于卡尔曼滤波的GPS数据处理研究
- Funcode自制游戏
- MIMU_GPS_磁力计单兵系统组合导航技术
- Codesnitch pro
- xocde真机测试包12.3.zip
- xcode 12.2真机测试包
- clean code(中文完整版) 带书签
- SublimeCodeIntel插件
- Xcode9.X支持ios12.1真机调试文件
- iOS12.2DeveloperDiskimage
- iOS12.1 DeveloperDiskimage
- HLW8032参考设计资料V10.1
- Xcode7.3.1 ios10 developer disk image
- 自己整合的EC20调试资料
- CODESYS V3 基础编程指南完整版(带目录
- GSM网络原理及其网络优化-韩斌杰第
- xcode 模拟器插件 10.3 (14E269)
- Demol_Code_IAR.zip
- 《PLC综合开发利器——CoDeSys基础编程
- stm32GPS定位模块
- GPS理论算法与应用 [德许国昌著]中文
- codev中文入门
- qtCodeTools.rar
- 莱卡GPS1200模拟器
- VSCode安装包X64
- 蓝讯SDK开发_工具链及IDE_包含RV32-Too
- GPS测量原理与应用第三版.pdf
- 英伟达 最新的Video_Codec_SDK_9.0.20 sdk
评论
共有 条评论