|
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数据只能更新一次,再也进入不了中断? |
F407的SDIO的硬件分流问题
与TF 卡 SDIO 通信报错:HAL_SD_ERROR_REQUEST_NOT_APPLICABLE
关于H750VB的SDMMC开启DMA读写SD卡
变量在循环体外出现未定义行为
强制类型转换不起作用
请问一下STM32F103C8T6的Hardwar NSS Output ENABLE后cs持续拉低是为什么
STM32 VSCode 扩展插件问题
Snow Rider: The Endless Winter Rush That’s Easy to Start
在 CubeIDE 中为不同 RAM 区域定义带初始值的全局变量
FreeRTOS中为什么要以这种宏定义方式访问指定地址的值
微信公众号
手机版
你在重新启动前,先执行一下这会代码试试:
hsdadc1.State = HAL_SDADC_STATE_READY;