周半梅 发表于 2025-4-13 07:17

串口数据一发多了就丢,是不是缓冲区不够?

用HAL库的时候,是不是默认缓冲设置太小了点?

Clyde011 发表于 2025-4-13 07:24

看一下USART状态寄存器,有没有错误标志。

Uriah 发表于 2025-4-13 07:25

可以加个LED调试一下丢数据那一瞬间。

Pulitzer 发表于 2025-4-13 07:25

看串口中断优先级,会不会被其他中断打断?

Bblythe 发表于 2025-4-13 07:26

我用RTOS的时候也遇到,可能是调度延迟。

Wordsworth 发表于 2025-4-13 07:27

可以试试开FIFO,看会不会缓解。

公羊子丹 发表于 2025-4-13 07:28

看看HAL库里那个发送函数是不是阻塞的?

周半梅 发表于 2025-4-13 07:29

DMA收发试过吗?效率会好很多。

帛灿灿 发表于 2025-4-13 07:30

我之前是中断模式丢字节,后来改DMA就好了。

童雨竹 发表于 2025-4-13 07:30

收数据的时候你是不是没及时处理?

万图 发表于 2025-4-13 07:31

我一般都会自己写环形缓冲区。

qintian0303 发表于 2025-4-13 11:44

串口数据一发多了就丢,是单片机发送丢还是你给他发,他收的时候丢

laocuo1142 发表于 2025-4-14 15:50

串口数据多发就丢缓冲区不足是常见原因之一,但并非唯一可能。

flycamelaaa 发表于 2025-4-14 19:23

中断优先级不足,DMA 模式未启用或配置错误也可能导致缓冲区不足。

laocuo1142 发表于 2025-4-14 20:00

若波特率较高,且数据帧密集发送,接收缓冲区可能被快速填满,导致后续数据丢失。
页: [1]
查看完整版本: 串口数据一发多了就丢,是不是缓冲区不够?