肯请指导 循环读取串口数据问题

2019-07-18 09:57发布

82C5 3030B430303030B203C3C5
82C5 B130B430303030B23030303003B8C6
82C5 B130B43030B430B2C6C6C6C603C542
82C5 B130B430303630B2C6C6C6C603C544
82C5 B130B43030B830B2C6C6C6C603C5C6626C696E6B

80100 1 3002 7F2C0E43330840290976280B 15
80100 2 3002 7F5E0E7A170D7C47137F250A 51
80100 3 3002 7F5A147F190E7B4E197F1D0B 61
80100 4 3002 7F6A13601B0F3230107F220B 6A
80100 5 3002 7F67107F1B157F5C197F1A0B 04
80100 6 3002 7F5F107F21157F401B7F2512 7B
80100 7 3002 7977177F1A0F7F421A7F1A0F 7B
80100 8 3002 7F580D7F200F593B107F300E 3D
80100 9 3002 7F7516771A167F54157F2412 19
80100 A 3002 7F6F0D781E0E532D0E7F2A0E 30
80100 B 3002 7F54136714137F56267F1B0E 64
80100 C 3002 7F5D116916107F451C7F1F0C 54

82C5 B130B43030B230B230B130300339B2
82C5 3030B430303030B203C3C5
82C5 3030B430303030B203C3C5

肯请指导串口循环接收数据处理问题

1.上面的数据是串口接收到的,全部无空格也无换行,加空格换行分开只是为了方便说明。
2.80100与3002是固定的,后面的1.2.3到C为编号,后面15,51,61等为校验位,接下来的24字符为有用数据。
3.想要的结果为一个一维字段符串数组:
1.7F2C0E43330840290976280B
2.7F5E0E7A170D7C47137F250A
.
.
.
12.7F5D116916107F451C7F1F0C

3.问题:请问前后的干扰字符如何排除,也就是说如何判断缓冲区有80010时我才开始接收(我只会判断缓冲区有n个字符时),而收到82C5是就停止接收(82C5对我是无用数据),大家是怎么处理的呢,肯请指导。
4.新人肯指大侠指导。十分感谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
touch_xu
1楼-- · 2019-07-19 10:31
lstcspring 发表于 2012-9-17 20:34  你的“一维字段符串数组”长是否一致,如果不一致最好在数据包中加个数据长度标识位!判到起始位后,收完一 ...

长度一致的,12个元素啊
caocong
2楼-- · 2019-07-19 11:20
你的数据应该不是一次来这么多的,是你发一条命令然后来一条,不然也不可能每条后面都有校验,条件结构每次发不同的命令,然后接受,截取有用字符串即可,放到FOR中最后自动索引出一个数组就ok了
fastfood
3楼-- · 2019-07-19 14:50
你可以用这个查查“串口数据采集器”,它是调串口数据的专用工具,能够使你了解到串口跑的数据与期望的是否一致,还有时序关系是不是正确。在淘宝上可以查到这个工具.

一周热门 更多>