我正在使用STM32 Nucleo F334R8板。我使用UART以异步模式将一些数据传输到我的PC,使用:HAL_UART_Transmit_IT(&huart2, &data, sizeof(data));我注意到在DMA模式下启用ADC后,微控制器开始通过UART发送错误数据。当我只是评论出来时:HAL_ADC_Start_DMA(&hadc1, adc_dma_values, 2);UART传输发送正确的数据。当我HAL_UART_Transmit_IT()用HAL_UART_Transmit()它替换它也令人惊讶地运作良好。我不明白HAL_ADC_Start_DMA()可能会有什么影响HAL_UART_Transmit_IT()。这是main.c的完整代码,也许会有所帮助。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
如果你在没有中断的情况下使用UART,UART正在工作,并且
如果不使用DMA,则UART可以处理中断。
DMA中断可能经常发生,因为CPU始终忙于处理DMA中断,因此不会执行UART IRQ。
优先考虑UART IRQ应解决问题。
一周热门 更多>