STC单片机接收数据之如何判断数据结束

Tina_fan2014 2014-08-27 09:22:17
大家好,我是刚接触这方面的菜鸟。我用的STC单片机从串口不断接收数据,数据格式$K:CCCC<LF> 或 $J:CCCC<LF>,当接收到$K:CCCC<LF>表示接收进行中,当收到$J:CCCC<LF>表示接收结束,要进入下一次接收。但实际测试的时候,并没有接收到$J:CCCC<LF>,所以无法判断数据接收完了(而且有时又会收到不止一个$J:CCCC<LF>)。我现在另一个想法是判断接收到的这个数据在3S内不变,就进入下一次接收,但不知道怎么用代码实现,求大神赐教!!!
...全文
979 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxianbin 2014-08-27
  • 打赏
  • 举报
回复
引用 2 楼 Tina_fan2014 的回复:
[quote=引用 1 楼 zhxianbin 的回复:] 定时器啊 另外,我觉得发送接收有问题,就应该解决这个问题,$J:CCCC<LF> 收不到,其它的同样可能收不到啊,所以我觉得解决问题的思路不合适
我不知道怎么判断接收到的数据没变,我是把接受到的数据存到一个数组里。还有$J:CCCC<LF>没有收到,但$K:CCCC<LF>有收到,因为我的显示器上有数据。[/quote] 很简单,查代码问题,用 串口工具肯定能收到
Tina_fan2014 2014-08-27
  • 打赏
  • 举报
回复
引用 1 楼 zhxianbin 的回复:
定时器啊 另外,我觉得发送接收有问题,就应该解决这个问题,$J:CCCC<LF> 收不到,其它的同样可能收不到啊,所以我觉得解决问题的思路不合适
我不知道怎么判断接收到的数据没变,我是把接受到的数据存到一个数组里。还有$J:CCCC<LF>没有收到,但$K:CCCC<LF>有收到,因为我的显示器上有数据。
zhxianbin 2014-08-27
  • 打赏
  • 举报
回复
定时器啊 另外,我觉得发送接收有问题,就应该解决这个问题,$J:CCCC<LF> 收不到,其它的同样可能收不到啊,所以我觉得解决问题的思路不合适
Tina_fan2014 2014-08-27
  • 打赏
  • 举报
回复
引用 5 楼 zhxianbin 的回复:
[quote=引用 4 楼 Tina_fan2014 的回复:] [quote=引用 3 楼 zhxianbin 的回复:] [quote=引用 2 楼 Tina_fan2014 的回复:] [quote=引用 1 楼 zhxianbin 的回复:] 定时器啊 另外,我觉得发送接收有问题,就应该解决这个问题,$J:CCCC<LF> 收不到,其它的同样可能收不到啊,所以我觉得解决问题的思路不合适
我不知道怎么判断接收到的数据没变,我是把接受到的数据存到一个数组里。还有$J:CCCC<LF>没有收到,但$K:CCCC<LF>有收到,因为我的显示器上有数据。[/quote] 很简单,查代码问题,用 串口工具肯定能收到[/quote] 用串口助手发送数据到单片机时,显示器就能正常接收和显示; 把单片机接收的数据传给串口助手时,我是用串口1接收数据(我用的STC是双串口的),再通过串口2把数据送出,助手没有接收,咋回事哦[/quote] 你首先简单点测试,串口 1、2 分别与串口助手收发,都正常再修改代码,你这样问,别人没有相同的环境无法直接给出答案,要学会分析问题[/quote]恩 谢谢
zhxianbin 2014-08-27
  • 打赏
  • 举报
回复
引用 4 楼 Tina_fan2014 的回复:
[quote=引用 3 楼 zhxianbin 的回复:] [quote=引用 2 楼 Tina_fan2014 的回复:] [quote=引用 1 楼 zhxianbin 的回复:] 定时器啊 另外,我觉得发送接收有问题,就应该解决这个问题,$J:CCCC<LF> 收不到,其它的同样可能收不到啊,所以我觉得解决问题的思路不合适
我不知道怎么判断接收到的数据没变,我是把接受到的数据存到一个数组里。还有$J:CCCC<LF>没有收到,但$K:CCCC<LF>有收到,因为我的显示器上有数据。[/quote] 很简单,查代码问题,用 串口工具肯定能收到[/quote] 用串口助手发送数据到单片机时,显示器就能正常接收和显示; 把单片机接收的数据传给串口助手时,我是用串口1接收数据(我用的STC是双串口的),再通过串口2把数据送出,助手没有接收,咋回事哦[/quote] 你首先简单点测试,串口 1、2 分别与串口助手收发,都正常再修改代码,你这样问,别人没有相同的环境无法直接给出答案,要学会分析问题
Tina_fan2014 2014-08-27
  • 打赏
  • 举报
回复
引用 3 楼 zhxianbin 的回复:
[quote=引用 2 楼 Tina_fan2014 的回复:] [quote=引用 1 楼 zhxianbin 的回复:] 定时器啊 另外,我觉得发送接收有问题,就应该解决这个问题,$J:CCCC<LF> 收不到,其它的同样可能收不到啊,所以我觉得解决问题的思路不合适
我不知道怎么判断接收到的数据没变,我是把接受到的数据存到一个数组里。还有$J:CCCC<LF>没有收到,但$K:CCCC<LF>有收到,因为我的显示器上有数据。[/quote] 很简单,查代码问题,用 串口工具肯定能收到[/quote] 用串口助手发送数据到单片机时,显示器就能正常接收和显示; 把单片机接收的数据传给串口助手时,我是用串口1接收数据(我用的STC是双串口的),再通过串口2把数据送出,助手没有接收,咋回事哦

2,426

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧