找回密码
 立即注册
查看: 305|回复: 5

遇到循环队列问题

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-10-28 09:23:09 | 显示全部楼层 |阅读模式
本帖最后由 dnajx 于 2024-10-28 10:41 编辑

stc32g12k128 串口收发与环形队列 学习


遇到一个问题,请给予解答,谢谢


入队10个字符
遍历队列,遍历输出10个字符没有问题,就是在最后多了一个‘?’

这时如果定义一个无用的变量int或char型,再遍历队列的时候,后面的“?”就没有了

为什么会这样——定义一个无用的变量,‘?’就没有了?

 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-10-28 09:37:53 | 显示全部楼层
具体看你使用了什么类型处理字符,如果用到string类型,结尾是需要加“\0”的,
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-10-28 09:55:51 | 显示全部楼层
本帖最后由 dnajx 于 2024-10-28 10:03 编辑
晓*** 发表于 2024-10-28 09:37
具体看你使用了什么类型处理字符,如果用到string类型,结尾是需要加“\0”的, ...

加不加“\0”,没有区别。我就奇怪了,加个根本没有使用的变量就没有了最后的‘?’

1.jpg 2.jpg

 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-10-28 10:50:20 | 显示全部楼层
可能是编译器优化的原因
串口收发参考:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4598
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-10-28 12:04:12 | 显示全部楼层
本帖最后由 dnajx 于 2024-10-28 12:29 编辑

11.jpg 13.png 12.jpg

1.jpg 2.jpg
无标题.jpg
 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-10-28 12:20:49 | 显示全部楼层
本帖最后由 dnajx 于 2024-10-28 12:44 编辑

用STC提供的串口程序,学习循环队列相关知识。源程序有u8  RX1_Buffer[UART1_BUF_LENGTH]; //接收缓冲,由于采用循环队列,把串口部分单独一个子程序,这一句就被删除了,遍历输出就出现这个问题。最后反复比对定位这一句。尝试改变变量名和类型,都没有出现?号。最后在主程序里,随便定义一个变量,也没有出现?号

期间编译器等环境都没有改变,用的模块是降龙棍。这到底是因为什么?很是奇怪,请您帮忙解惑,谢谢

STC32G循环队列1028.rar

44.05 KB, 下载次数: 41

 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:14 , Processed in 0.109253 second(s), 79 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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