STM32 HAL使用带DMA的ADC会影响UART传输

2019-07-14 17:40发布

我正在使用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的完整代码,也许会有所帮助。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
yvochen
1楼-- · 2019-07-15 03:01
你是对的。原来我的问题与优先事项有关。随意做出最终答案。我会接受的。谢谢!
blueshine
2楼-- · 2019-07-15 06:01
基于以下内容:
如果你在没有中断的情况下使用UART,UART正在工作,并且
如果不使用DMA,则UART可以处理中断。
DMA中断可能经常发生,因为CPU始终忙于处理DMA中断,因此不会执行UART IRQ。
优先考虑UART IRQ应解决问题。
yvochen
3楼-- · 2019-07-15 06:19
是我的问题。我改变了中断的优先级,现在效果很好。谢谢!

一周热门 更多>