OpenEdv-开源电子网

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

实验4 串口实验 问题

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-12
在线时间
8 小时
发表于 2019-5-7 18:32:34 | 显示全部楼层 |阅读模式
虽然实验指示 输入数据 以回车结束

发现 如果不加回车  发送  数据  不会收到任何回复
2.jpeg
第二次 发送 同样不加回车  没有任何回复
3.jpeg
但是 第三次 发送时  加上回车   就会出现这种情况   把前两次 作废的数据  给发送回来了
4.jpeg

感觉 需要 加一个 TimeOut  
应该判断 如果 USART_RX_STA    0-13位  如果不为零  启动定时器   判断规定时间内  还没有接收到 0x0D  0x0A  回车符   就清零数据有效位 归零计时器

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3888
金钱
3888
注册时间
2017-3-7
在线时间
1694 小时
发表于 2019-5-7 18:47:54 | 显示全部楼层
一般情况不会出现长时间不enter,感觉没必要
回复 支持 反对

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-5-7 20:03:07 | 显示全部楼层
本身接收协议要求有0x0d  0x0a  除非自己该协议吧
回复 支持 反对

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14433
金钱
14433
注册时间
2018-8-3
在线时间
1157 小时
发表于 2019-5-7 21:52:53 | 显示全部楼层
串口中断函数去看看 有判断OD OA的操作
啊哈~加油!!
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-4-12
在线时间
8 小时
 楼主| 发表于 2019-5-10 23:27:30 | 显示全部楼层
翼行园子 发表于 2019-5-7 21:52
串口中断函数去看看 有判断OD OA的操作

你可以试试 这个 和 判断OD OA 没关系
程序里面 判断  接收到  OD  如果没有 接收到 OA  清零 缓存
实际情况是 OD 与OA  是 连在一起 的     一个 回车按钮  发送的只要有换行     就是 OD + OA

回复 支持 反对

使用道具 举报

12

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1826
金钱
1826
注册时间
2017-9-7
在线时间
501 小时
发表于 2019-5-11 11:10:48 | 显示全部楼层
荆魁 发表于 2019-5-10 23:27
你可以试试 这个 和 判断OD OA 没关系
程序里面 判断  接收到  OD  如果没有 接收到 OA  清零 缓存
实 ...

简单来说,就是你没加回车并且发送的数据量没达到限制条件时,协议会认为数据没接收完,数据就都会保存在buf中,并不是你理解的数据作废了,当你加了回车当然就认为接收完了,就会全部发回然后清零标记。这个协议就是这么设计的,相对来说比较简单,你要加延时检测或者加定时器检测也好,就是另外的协议了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 01:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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