|
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数据只能更新一次,再也进入不了中断? |
请教STM32F103的DMA空闲接收问题
STM32H725VGT3内存不足问题
STM32H7A3 怎样配置MDMA的硬件触发MDMA_REQUEST_DMA1_Stream0_TC将数据再次转运
串口DMA收发出现ORE错误
关于外部事件(EXTI0)触发SPI读取数据
STM32F429突然死机
stm32u575 gpdma burst length=1 配置其他数值不工作
STM32F769I-DISCO开发包LCD DSI示例程序如何回读LCD 驱动IC的寄存器?
stm32使用hal库数据疑问
在学习stm32,有哪些视频教程呢?想系统研究研究
微信公众号
手机版
你在重新启动前,先执行一下这会代码试试:
hsdadc1.State = HAL_SDADC_STATE_READY;