
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数据只能更新一次,再也进入不了中断? |
MCSDK 6.2.1 位置模式过冲
STM32H743内部温度传感器读数错误
STM32F334使用cubmx配置,晶振无法起振
HAL_TIM_IC_Start_DMA的回调函数是HAL_TIM_IC_CaptureCpltCallback吗?为什么进不去?
STM32L431内部温度AD值不随温度变化
STM32F303的CAN的初始化问题
商城的F334开发板是电源开发板么,还是只有基础外设板载
STM32L031G6U6芯片,使用Flash模拟EEPROM功能,同数据写入不同地址,读取对比不一样,这是为什么?
STM32G473RC timer8的CCDS bit, Capture/Compare DMA selection.
STM32H7+SAI+DMA双缓冲配置失败.
你在重新启动前,先执行一下这会代码试试:
hsdadc1.State = HAL_SDADC_STATE_READY;