硬汉嵌入式论坛

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

[有问必答] 串口环形队列问题

[复制链接]

17

主题

67

回帖

118

积分

初级会员

积分
118
发表于 2021-3-15 15:36:37 | 显示全部楼层 |阅读模式
  1. /* 处理接收中断  */
  2.         if ((isrflags & USART_ISR_RXNE) != RESET)
  3.         {
  4.                 /* 从串口接收数据寄存器读取数据存放到接收FIFO */
  5.                 uint8_t ch;

  6.                 ch = READ_REG(_pUart->uart->RDR);
  7.                 _pUart->pRxBuf[_pUart->usRxWrite] = ch;
  8.                 if (++_pUart->usRxWrite >= _pUart->usRxBufSize)
  9.                 {
  10.                         _pUart->usRxWrite = 0;
  11.                 }
  12.                 if (_pUart->usRxCount < _pUart->usRxBufSize)
  13.                 {
  14.                         _pUart->usRxCount++;
  15.                 }
复制代码
硬汉哥,请教几个问题1、环形缓冲不是应改记住头尾位置,数据来了循环覆盖,需要处理的时候,从头读出全部不久行了。您在写数据时为什么要判断缓冲区满了,_pUart->usRxWrite = 0;
2._pUart->usRxCount++这个计数器大于或等于缓冲区usRxBufSize的话,没看到相关的处理,不过不会大于usRxBufSize的




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-3-15 16:13:36 | 显示全部楼层
1、环形到头了,从头覆盖。
2、方便调试查看_pUart->usRxCount的计数。
回复

使用道具 举报

17

主题

67

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-3-15 17:20:48 | 显示全部楼层
好的,非常感谢,,,
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-4-30 08:58:50 | 显示全部楼层
lihui163 发表于 2021-3-15 17:20
好的,非常感谢,,,

lz 这个串口环形队列的代码在哪
回复

使用道具 举报

7

主题

196

回帖

222

积分

高级会员

积分
222
发表于 2021-6-22 13:50:08 | 显示全部楼层
eric2013 发表于 2021-3-15 16:13
1、环形到头了,从头覆盖。
2、方便调试查看_pUart->usRxCount的计数。

硬汉哥这是哪个例程里面的啊
回复

使用道具 举报

17

主题

67

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-8-8 14:02:49 | 显示全部楼层
koukou 发表于 2021-4-30 08:58
lz 这个串口环形队列的代码在哪

论坛里有
回复

使用道具 举报

17

主题

67

回帖

118

积分

初级会员

积分
118
 楼主| 发表于 2021-8-8 14:03:07 | 显示全部楼层
abcde1224 发表于 2021-6-22 13:50
硬汉哥这是哪个例程里面的啊

论坛里有
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-8-9 12:18:43 | 显示全部楼层
koukou 发表于 2021-4-30 08:58
lz 这个串口环形队列的代码在哪

这里的串口FIFO

【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至50章(2021-05-24)
https://forum.anfulai.cn/forum.p ... 3255&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-8-9 12:19:10 | 显示全部楼层
abcde1224 发表于 2021-6-22 13:50
硬汉哥这是哪个例程里面的啊

这里的串口FIFO

【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔,更新至50章(2021-05-24)
https://forum.anfulai.cn/forum.p ... 3255&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-14 17:33 , Processed in 0.041007 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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