完善资料让更多小伙伴认识你,还能领取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应解决问题。 |
|
|
|
是我的问题。我改变了中断的优先级,现在效果很好。谢谢!
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2049 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1893 浏览 3 评论
4485 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2040 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2549 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 14:47 , Processed in 0.751122 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号