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]
查看完整版本: 用F4的USART1发送,偶尔TXE标志不置位