
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数据只能更新一次,再也进入不了中断? |
STM32G474VET6如何配置HRTIM的中心对齐模式
STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机(取消中断后完全正常)
stm32g431rbt怎么显示汉字
多DMA数据流问题
STM32 MCU的良率
stm32h725
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神
stm32F723ZET6使用ADC捕获正弦波,adc采样频率过高导致主函数无法运行,要怎么优化?
ADC差分采样
你在重新启动前,先执行一下这会代码试试:
hsdadc1.State = HAL_SDADC_STATE_READY;