
使用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。 |
请问大佬们,L433进入stop2模式还有874uA的电流,有什么排查的办法吗?
定时器使用DMA突发传输功能时,传入指针从常量数组改为变量数组后,传输功能异常。测试官方用例一样,是何原因?
STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能 寄存器USEF=1
分享一个PWM+DMA的BUG
STM32的TIM触发SPI的DMA发送使用NSS时MSSI的问题
ST25R3916有快速读取吗?
STM32L476 Flash擦除失败问题
PWM+DMA求助
STM32L562-DK板中居然有个电流测量模块
STM32H743使用EXIT0触发SPI的DMA发送数据
如果在回调函数里做数据处理时,ADC还是在不停转换的话,相应数据是会被DMA修改的。如果不希望这样,你要保证一轮数据传输
完毕后未处理完之前不要触发ADC转换了。
楼主可以计算并观测一组的数据时间反向验证。在回调函数里加一点延迟看看~~
我是用的连续不断触发,是否能使用半传回调函数HAL_ADC_ConvHalfCpltCallback和全传回调函数HAL_ADC_ConvCpltCallback做双缓冲,实时的处理ADC采集的数据