|
SDADC1采用快速连续,注入转换,禁止中断,转换1024次后,由DMA产生中断,读取数据。DMA采用normal方式,即在传输1024次后,读取数据完毕再启动新的数据传输。在调试过程中,发现DMA进入的中断是HAL_SDADC_InjectedConvCpltCallback,检查了HAL_SDADC_InjectedStart_DMA内部的定义,发现最后确实是指向这个回调函数。但是只能在启动后进入一次,数据就再不更新了?查了相关帖子,按照建议,也是把DMA初始化放在SDADC初始化之前,但确实没解决这个问题?请教一下,不知道还有什么其他的建议? 我中断程序内置标志位,然后回到主函数,处理数据完成后,重新执行以下语句,: HAL_SDADC_Start(&hsdadc1); HAL_SDADC_InjectedStart_DMA(&hsdadc1, (uint32_t*)m_adVal, NUM_AD); __HAL_DMA_ENABLE_IT(&hdma_sdadc1,DMA_IT_TC | DMA_IT_TE); 但AD数据只能更新一次,再也进入不了中断? |
STM32L431CCT6芯片的ADC差分采集
在学习stm32,有哪些视频教程呢?想系统研究研究
DMA传输完成后,串口与DMA一直处于忙状态
STM32F407VET6 能适配哪些FATFS版本文件
STM32H7A3VGTA QSPI读W25Q128J DMA模式不能工作
STM32G474VET6如何配置HRTIM的中心对齐模式
请问怎么使用stm32+spi实现bissc通信?有大佬弄过吗?
请问设备剧烈运动后静置数据无法归零,必须重启设备才能归零,是什么原因呢,如何处理,谢谢各位有偿咨询各位
//STM32H7A3VGT6 QSPI的DMA方式无法正常工作
STM32H743内部温度传感器读数错误
微信公众号
手机版
你在重新启动前,先执行一下这会代码试试:
hsdadc1.State = HAL_SDADC_STATE_READY;