关于GD32f427的串口数据处理问题

[复制链接]
869|40
nomomy 发表于 2025-12-8 20:02 | 显示全部楼层
将发送操作移到主循环              
jackcat 发表于 2025-12-9 09:21 | 显示全部楼层
将串口1中断服务函数中的逻辑处理移至主循环或RTOS任务中,仅保留标志位设置和DMA重启操作,减少中断执行时间。
everyrobin 发表于 2025-12-9 17:10 | 显示全部楼层
在 UART1 的高优先级 ISR 中启动 UART2 的 DMA 发送?
modesty3jonah 发表于 2025-12-10 11:42 | 显示全部楼层
逻辑分析仪抓取两个串口的 RX/TX 波形
yeates333 发表于 2025-12-10 13:06 | 显示全部楼层
高优先级中断(USART1)内操作低优先级外设(USART2)的DMA发送时,导致USART2接收DMA控制器被强制重置。
albertaabbot 发表于 2025-12-10 13:52 | 显示全部楼层
中断服务函数中“同时发送”导致硬件资源竞争
bartonalfred 发表于 2025-12-10 16:14 | 显示全部楼层
改用 阻塞式发送              
plsbackup 发表于 2025-12-10 16:52 | 显示全部楼层
超时中断与DMA竞争              
primojones 发表于 2025-12-10 17:28 | 显示全部楼层
中断服务函数的设计缺陷              
 楼主| gt580230 发表于 2025-12-18 20:56 | 显示全部楼层
经过调试发现是由于调用了usart_flag_get(USART2, USART_FLAG_TBE)判断发送完成函数接口就会出现这个现象,根本原因还是没确定,但估计是一些寄存器操作导致什么冲突了才会清掉了DMA的计数
明日视界 发表于 2026-1-9 14:02 | 显示全部楼层
DMA传输中断时,应先完成当前传输再处理其他DMA任务,避免干扰。
IntelCore 发表于 2026-1-9 16:32 | 显示全部楼层
在高优先级中断服务例程中避免直接使用DMA,以防冲突。
Moon月 发表于 2026-1-11 11:54 | 显示全部楼层
可能是多个设备同时访问总线或内存,导致数据不一致。检查设备同步和仲裁机制。
流星flash 发表于 2026-1-12 15:50 | 显示全部楼层
可能是因为内存地址或者数据长度设定不对,检查程序里的地址和长度设定是否正确。
LinkMe 发表于 2026-1-14 12:39 | 显示全部楼层
中断服务例程(ISR)应简洁,只设标志位,复杂任务交主循环处理。
单芯多芯 发表于 2026-1-16 15:01 | 显示全部楼层
检查中断优先级和DMA操作时机,避免冲突干扰。
理想阳 发表于 2026-1-18 11:50 | 显示全部楼层
中断处理要小心,避免一个中断影响另一个,检查DMA配置和中断优先级。
digit0 发表于 2026-1-19 08:31 | 显示全部楼层
两个串口DMA控制器不同,意味着使用时要注意分别配置。
jdqdan 发表于 2026-1-20 08:11 | 显示全部楼层
GD32f427串口数据处理,确保正确配置波特率、数据位、停止位和校验位。检查中断使能和中断服务程序,确保数据正确接收。
鹿鼎计 发表于 2026-1-21 13:20 | 显示全部楼层
中断中同时操作串口可能导致DMA冲突,建议先完成一个串口操作再启动另一个。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0