完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
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个回答
|
|
你是一个循环读取这么多个数据吗?如果是的话,那么可以做一个判断,截取从80100开始后的数据,当检测到82C5,则截取前面的数据,则可以将中间的有效数据给截取出来,从你需要的数据上来看,实质你只需要3002后面与校验位前的24个字节...
|
|
|
|
xjlin2 发表于 2012-9-17 15:24 你是一个循环读取这么多个数据吗?如果是的话,那么可以做一个判断,截取从80100开始后的数据,当检测到82C ... 是一次要这么多数据,但是要保证数据的完整性啊,我只会循环读取每一位然后连接字符串,可是什么开始读,什么时候停止都不会啊,没有一点头绪啊,谢谢帮助,依然不明白啊 |
|
|
|
本帖最后由 touch_xu 于 2012-9-17 15:58 编辑
xjlin2 发表于 2012-9-17 15:24 你是一个循环读取这么多个数据吗?如果是的话,那么可以做一个判断,截取从80100开始后的数据,当检测到82C ... 是一次要这么多数据,但是无论几次,我要保证得到12组数据就好了,谢谢您! |
|
|
|
用状态机判断,这个很好处理的,只要你的有用数据长度在RAM中不会溢出,1:等待80,是状态加1;2:等于10?是加一,不是状态清零;3:不判断,不管什么数字都加1;4:以此类推
|
|
|
|
知道状态机,但是还是看不懂啊,还是我自己太笨了,得到数据后知道如何处理,就是接收的时候处理不好啊,哎! |
|
|
|
你的“一维字段符串数组”长是否一致,如果不一致最好在数据包中加个数据长度标识位!判到起始位后,收完一个包又开始下一包的判断!
|
|
|
|
lstcspring 发表于 2012-9-17 20:34 你的“一维字段符串数组”长是否一致,如果不一致最好在数据包中加个数据长度标识位!判到起始位后,收完一 ... 长度一致的,12个元素啊 |
|
|
|
你的数据应该不是一次来这么多的,是你发一条命令然后来一条,不然也不可能每条后面都有校验,条件结构每次发不同的命令,然后接受,截取有用字符串即可,放到FOR中最后自动索引出一个数组就ok了
|
|
|
|
你可以用这个查查“串口数据采集器”,它是调串口数据的专用工具,能够使你了解到串口跑的数据与期望的是否一致,还有时序关系是不是正确。在淘宝上可以查到这个工具.
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1852 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1469 浏览 0 评论
1664 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3718 浏览 3 评论
1575 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 06:58 , Processed in 0.755803 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号