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

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条回答
草根白骨精
2019-07-19 01:07
用状态机判断,这个很好处理的,只要你的有用数据长度在RAM中不会溢出,1:等待80,是状态加1;2:等于10?是加一,不是状态清零;3:不判断,不管什么数字都加1;4:以此类推

一周热门 更多>