OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3895|回复: 12

串口接收问题

[复制链接]

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-3-20
在线时间
26 小时
发表于 2018-7-30 15:53:49 | 显示全部楼层 |阅读模式
5金钱
当我pc端发送0xAB(起始帧),串口会产生中断,但是接收完后进入判断时,进不了buf的值为0xAB这个条件里就是说满足条件了但是还进不去满足条件的语句里面去

程序截图

程序截图

最佳答案

查看完整内容[请看2#楼]

第一,没看到Rx.Count的定义,是全局变量吗?初始化是0吗? 第二,仿真看buf[0]里面的数据是什么; 第三,试下把接收数据语句放在最前面,然后清中断标志。另外好像STM32读取串口数据的过程就把中断清除了,不用清中断语句。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

87

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1435
金钱
1435
注册时间
2015-5-19
在线时间
132 小时
发表于 2018-7-30 15:53:50 | 显示全部楼层
本帖最后由 胖子阳 于 2018-7-31 10:04 编辑

第一,没看到Rx.Count的定义,是全局变量吗?初始化是0吗?
第二,仿真看buf[0]里面的数据是什么;
第三,试下把接收数据语句放在最前面,然后清中断标志。另外好像STM32读取串口数据的过程就把中断清除了,不用清中断语句。
回复

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-3-20
在线时间
26 小时
 楼主| 发表于 2018-7-30 16:06:54 | 显示全部楼层
经过将串口发送的数再返回pc端后,发送的确实是0xAB
回复

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-3-20
在线时间
26 小时
 楼主| 发表于 2018-7-30 16:13:22 | 显示全部楼层
本帖最后由 永恒的光 于 2018-7-30 16:33 编辑

我对于整个接收过程不是很理解,每一次是接收一个字节的数据对吧,那即使我后面跟着别的帧也不会影响0xAB是这样吧?
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7568
金钱
7568
注册时间
2016-11-30
在线时间
643 小时
发表于 2018-7-30 16:36:36 | 显示全部楼层
确定接收在buf[0]了嘛?
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-7-30 17:10:31 | 显示全部楼层
本帖最后由 哆啦A萌 于 2018-7-30 17:13 编辑

判断方法有问题,你这样的会出现如果接收新的数据包时而count不为为0时则整个过程无法实现
回复

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-3-20
在线时间
26 小时
 楼主| 发表于 2018-7-30 17:26:06 | 显示全部楼层
哆啦A萌 发表于 2018-7-30 17:10
判断方法有问题,你这样的会出现如果接收新的数据包时而count不为为0时则整个过程无法实现

但是为0时也不可以
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-30 17:33:26 | 显示全部楼层
调试一下看看能不能进这里面 ]V}BCQNP$J8W0EX`C)]%H(W.png
猪猪熊呢?
回复

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-3-20
在线时间
26 小时
 楼主| 发表于 2018-7-30 17:44:23 | 显示全部楼层
323232 发表于 2018-7-30 17:33
调试一下看看能不能进这里面

就是进不了这里哈,每次到这种语句就进不去
回复

使用道具 举报

11

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2018-3-20
在线时间
26 小时
 楼主| 发表于 2018-7-30 17:49:13 | 显示全部楼层
lvkanger 发表于 2018-7-30 16:36
确定接收在buf[0]了嘛?

接收应该是在buf[0],执行到是否是0xAB的时候执行不到条件为真时里面的语句
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7568
金钱
7568
注册时间
2016-11-30
在线时间
643 小时
发表于 2018-7-30 17:58:40 | 显示全部楼层
永恒的光 发表于 2018-7-30 17:49
接收应该是在buf[0],执行到是否是0xAB的时候执行不到条件为真时里面的语句

建议你打断点调试一下,看看接收的数据到底是什么内容,存放位置在哪里,问题自然就找到了
回复

使用道具 举报

10

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2017-10-9
在线时间
147 小时
发表于 2018-7-30 22:46:44 | 显示全部楼层
用SWITVH CASE 语句写
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-31 08:24:56 | 显示全部楼层
永恒的光 发表于 2018-7-30 17:49
接收应该是在buf[0],执行到是否是0xAB的时候执行不到条件为真时里面的语句

调试看一下buf[0]的值是多少
猪猪熊呢?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 21:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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