|
使用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。 |
CUBEMX配置G474串口DMA传输,为什么接收正常发送不了?
STM32L476项目运行提示没有crypto.h
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
STM32生产产地和版本
50台设备共用一条CAN总线,会概率性丢包
STM32L431CCT6芯片的ADC差分采集
stm32l4R7ZI的uart4在stop2模式下唤醒偶发数据接收丢失或者乱码
DMA传输完成后,串口与DMA一直处于忙状态
STM32F407VET6 能适配哪些FATFS版本文件
STM32H7A3VGTA QSPI读W25Q128J DMA模式不能工作
微信公众号
手机版
如果在回调函数里做数据处理时,ADC还是在不停转换的话,相应数据是会被DMA修改的。如果不希望这样,你要保证一轮数据传输
完毕后未处理完之前不要触发ADC转换了。
楼主可以计算并观测一组的数据时间反向验证。在回调函数里加一点延迟看看~~
我是用的连续不断触发,是否能使用半传回调函数HAL_ADC_ConvHalfCpltCallback和全传回调函数HAL_ADC_ConvCpltCallback做双缓冲,实时的处理ADC采集的数据