配置ADC
引脚配置
使能ADC模块,初始化ADC模块
单路转化配置,转化存储器配置
使能采样时钟,使能转化
中断使能,开启总中断
开始转化
//enable ADC module
ADC14_enableModule();
ADC14_initModule(ADC_CLOCKSOURCE_MCLK,ADC_PREDIVIDER_1,ADC_DIVIDER_1,0);
//gpio P5.5
GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P5,GPIO_PIN5,GPIO_TERTIARY_MODULE_FUNCTION);
//ADC Mem
ADC14_configureSingleSampleMode(ADC_MEM0,true);
ADC14_configureConversionMemory(ADC_MEM0,ADC_VREFPOS_AVCC_VREFNEG_VSS,ADC_INPUT_A0,false);
//Sample timer
ADC14_enableSampleTimer(ADC_MANUAL_ITERATION); //完成一次采样后需要再用ADC14_toggleConversionTrigger才开始下一次
ADC14_enableConversion();
ADC14_toggleConversionTrigger(); //开始转化
//ADC 中断
ADC14_enableInterrupt(ADC_INT0);
Interrupt_enableInterrupt(INT_ADC14);
Interrupt_enableSleepOnIsrExit();
Interrupt_enableMaster();
计算浮点数要开启FPU模块enableFPU
//FPU enable 计算ADC使用
FPU_enableModule();
FPU_enableLazyStacking();
中断服务函数
void ADC14_IRQHandler()
{
uint32_t status = ADC14_getEnabledInterruptStatus(); //获取中断状态
ADC14_clearInterruptFlag(status); //清空标志位
// 自行指定
if (status & ADC_INT0)
{
uint16_t curADCvalue=0;
curADCvalue = ADC14_getResult(ADC_MEM0);
float curVoltage=1.0;
curVoltage = (curADCvalue * 3.3 ) / 16384 ;
}
//下一次连续采样
ADC14_enableSampleTimer(ADC_MANUAL_ITERATION); //完成一次采样后需要再用ADC14_toggleConversionTrigger才开始下一次
ADC14_enableConversion();
ADC14_toggleConversionTrigger(); //开始转化
}
上一篇:基于MSP432的中断练习
下一篇:MSP432笔记——TIM定时器中断
推荐阅读最新更新时间:2024-11-12 11:13
设计资源 培训 开发板 精华推荐
- ADP2302 降压稳压器的典型应用,VIN = 12V,VOUT = 1.8V,2A
- MPC86XADS、XPC8xx 参考板,基于 XPC862T MPU PowerQUICC MPC8xx 处理器
- ED8106真数字单相单轨PWM控制器3.3V供电典型应用电路
- SECO-HVDCDC1362-15W-GEVB:用于 HEV 和电动汽车的 15 W SiC 高压辅助电源 纯电动汽车应用
- 4.2寸墨水屏模块-含程序说明
- STC32G12K128最小系统
- 超级电容一体化管理器验证板
- MTRCKTSPS5744P: MPC5744P 3相PMSM开发套件
- 【天津工业大学】差分放大电路+王和平
- L7809C 带温度补偿的可调输出电压的典型应用