完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用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的完整代码,也许会有所帮助。
|
|
相关推荐
4个回答
|
|
我在代码中看不到任何与UART相关的中断配置,你是否在某处处理UART发送中断?同样使用DMA移动两个字节似乎有点矫枉过正。检查从DMA中获取中断的频率,也许它会压低UART IT。您可以尝试优先考虑优先级,为UART提供更高的prio
|
|
|
|
你是对的。原来我的问题与优先事项有关。随意做出最终答案。我会接受的。谢谢!
|
|
|
|
基于以下内容:
如果你在没有中断的情况下使用UART,UART正在工作,并且 如果不使用DMA,则UART可以处理中断。 DMA中断可能经常发生,因为CPU始终忙于处理DMA中断,因此不会执行UART IRQ。 优先考虑UART IRQ应解决问题。 |
|
|
|
是我的问题。我改变了中断的优先级,现在效果很好。谢谢!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32串口接受中断使用C++STL中的queue导致所有中断失效
6014 浏览 1 评论
3031 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1325 浏览 0 评论
3869 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
3704 浏览 4 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-12 11:41 , Processed in 0.458073 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191