16进制转10进制及串口中断的问题
本帖最后由 wodejkgf 于 2015-12-23 23:40 编辑外部不停的通过串口发送数据给单片机。如下的16进制数据。(带空格)
2D A2 0C 00 2B FA 14 00 24 00 1C 00 34 00 04 00
2D A2 0C 00 2B FA 14 00 24 00 1C 00 34 00 04 00
每4个数字为一组,一共8组。第一组的A2是恒久不变也就是要判断是不是A2,才每次接收完8组后对后面的7组数据进行10进制转换,如0x0C00 就是3072,再通过串口反馈回来。
遇到的问题就是怎么判断收到了这32个数字,不会是前面一串数据收了后半部分,后面一串数据收了前半部分。接收完成后怎么进入中断(才接触ARDUINO,是中断吧)处理数据,处理完了又怎么重新开始接收数据接收?
谢谢老师们解答。
后续
前面是我弄错了,从示波器截获的数据来看,数据中是没有空格的,暂时发现能区分出一组数据起始方法就是的数据是从A2开始往后再数28个.还有一种方法就是每组数据发送后都有一个时间间隔。但是都不知道怎么入手。
数据通讯是要有协议的,你可以简单的订个开始标志和结束标志。
收到开始标志后,然后开始收。收到结束标志,那就开始对前面的数据进行转换。 ketose 发表于 2015-12-22 17:20 static/image/common/back.gif
数据通讯是要有协议的,你可以简单的订个开始标志和结束标志。
收到开始标志后,然后开始收。收到结束标志 ...
A2可做为开始标志,往后数28个字符便结束,可以这样吗? 如果你的数据里面出现A2呢? ketose 发表于 2015-12-23 20:28 static/image/common/back.gif
如果你的数据里面出现A2呢?
串口闲置的时间间隔呢?
页:
[1]