本文主要讲一下ADC流模式连续采样与ADC 单次触发采样的区别
功能上很好理解,单次触发采样就是触发一次采一次,连续采样就是触发一次连续采多次
主要从配置及代码使用两个方面
ADC流模式必须使用中断,得增加相应的中断回调函数,OS需要配置中断优先级
1.配置区别
主要是选择模式和采样次数,下图分别是单次触发采样和流模式连续采样的配置
单次触发Streaming Number只能配置为1,流模式连续采样按自己需求配,下面示例配了5,也就是调一次接口连续采样5次
添加中断回调函数
OS配置中断
OsApplication中引用配置好的中断
2. 代码区别
代码调用没啥区别,
主要就是设置buffer有区别,因为流模式连续采样采了多组,所以buffer得是数组
先定义一个buffer变量:Adc_ValueGroupType resultBuffer[5u];
定义adcGroup的buffer地址:Adc_SetupResultBuffer(adcGroup, resultBuffer);
启用该ADC通道的通知机制:Adc_EnableGroupNotification(adcGroup);
开启转换:Adc_StartGroupConversion(adcGroup);
获取转换结果:Adc_GetGroupStatus(adcGroup); 注意ADC_STREAM_COMPLETED,这个宏才是流模式转换完成标志
结束转换:Adc_StopGroupConversion(adcGroup);
建议:for循环5次,开始检测,直到检测成功或超时,结束检测,若转换成功则数据可信,若未收到转换成功标志,而是走了超时,则舍弃改数据。