硬汉嵌入式论坛

 找回密码
 立即注册
查看: 884|回复: 2
收起左侧

[有问必答] bsp_uart_fifo接收的缓冲区发送计数和接收计数不相等是什么原因?

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2024-10-23 17:35:56 | 显示全部楼层 |阅读模式
微信截图_20241023172729.png

usRxWrite  和 usRxRead不相等,但是 usRxCount=0,可能是什么原因导致的?是接收缓冲区给的太小了吗?
现在是这样的#define UART6_RX_BUF_SIZE        1*1024  
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-10-24 09:45:40 | 显示全部楼层
这个是因为数据没有及时读取,缓冲满了,发生数据覆盖。

解决办法
1、方法1:及时读取数据。
2、方法2:修改函数UartIRQ的接收部分,满了不再存储新数据



3、方法3:满了,FIFO覆盖


回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2024-10-24 14:03:26 | 显示全部楼层
感谢硬汉哥,选择了第一种,另外再加大缓冲区到2048就正常了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:01 , Processed in 0.040304 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表