Wordsworth
发表于 2025-6-19 07:26
用F4的USART1发送,偶尔TXE标志不置位
串口发送过程中突然就卡住了,看寄存器发现TXE始终是0,是不是进中断太快了?
Clyde011
发表于 2025-6-19 07:29
TXE和TC不要搞混,逻辑不一样的。
公羊子丹
发表于 2025-6-19 07:30
是不是中断没打开,TXE一直不更新?
周半梅
发表于 2025-6-19 07:31
HAL库里得等TXE=1才能写数据,太快了会错。
帛灿灿
发表于 2025-6-19 07:32
我之前是主循环写得太快,TX缓冲区满了。
童雨竹
发表于 2025-6-19 07:33
F4的FIFO功能别开,容易导致TXE不准。
万图
发表于 2025-6-19 07:33
看一下有没有其他中断影响了发送逻辑。
Wordsworth
发表于 2025-6-19 07:34
把波特率调低看看还有没有这问题。
Bblythe
发表于 2025-6-19 07:35
我用DMA发串口,基本不会卡住。
Pulitzer
发表于 2025-6-19 07:36
有时候是串口线接地不良,反馈不对。
Uriah
发表于 2025-6-19 07:37
用while(TXE==0)等一下保险些。
probedog
发表于 2025-6-20 16:54
中断处理速度过快导致的吧。。
classroom
发表于 2025-6-20 19:55
可能是在发送函数中未正确清除TC标志位。
flycamelaaa
发表于 2025-6-20 19:55
硬件连接不稳定?
powerantone
发表于 2025-6-20 20:56
钟配置不当可能导致标志位异常。
页:
[1]