|
使用cubemx配置ADC+DMA,DMA使用circular模式,启动ADC:HAL_ADC_Start_DMA(&hadc1,ADCvalue,NUM); 当ADCvalue满时,调用中断回调函数,我在中断回调函数中,把ADCvalue数据复制到另一个数组recv_buff中 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) { recvbuf(ADCvalue, recv_buff, sizeof(ADCvalue), sizeof(recv_buff)); } 在回调函数中ADCvalue是否还在更新,还是等执行完recvbuf(ADCvalue, recv_buff, sizeof(ADCvalue), sizeof(recv_buff));再更新ADCvalue。 |
STM32U5系列上电时序
STM32H7A3RGT6 ADC 8位采样速度只能达到3.5MSPS达不到数据手册上的7MSPS ?
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
CUBEMX配置G474串口DMA传输,为什么接收正常发送不了?
STM32L476项目运行提示没有crypto.h
STM32生产产地和版本
50台设备共用一条CAN总线,会概率性丢包
STM32L431CCT6芯片的ADC差分采集
stm32l4R7ZI的uart4在stop2模式下唤醒偶发数据接收丢失或者乱码
DMA传输完成后,串口与DMA一直处于忙状态
微信公众号
手机版
如果在回调函数里做数据处理时,ADC还是在不停转换的话,相应数据是会被DMA修改的。如果不希望这样,你要保证一轮数据传输
完毕后未处理完之前不要触发ADC转换了。
楼主可以计算并观测一组的数据时间反向验证。在回调函数里加一点延迟看看~~
我是用的连续不断触发,是否能使用半传回调函数HAL_ADC_ConvHalfCpltCallback和全传回调函数HAL_ADC_ConvCpltCallback做双缓冲,实时的处理ADC采集的数据