串口接收数据问题

[复制链接]
1847|4
 楼主| baidudz 发表于 2013-10-27 21:11 | 显示全部楼层 |阅读模式
用开发板上的串口,随机不停地发送整形、char型、300个字节。利用串口接收这些数据,将其解析出来分别送入处理整形、char型、300个字节的线程或进程中处理。大体的怎么去实现。
怎样发送这三种数据类型?接收时怎么去解析?协议怎么定?用的S5PV210的开发板
秋天落叶 发表于 2013-10-27 21:20 | 显示全部楼层
这个问题需要在数据链路层协议中解决。

例如,可以将要发送的数据打包,在包头相应的域中指明数据类型(格式)、长度等等。
dfsa 发表于 2013-10-27 21:34 | 显示全部楼层
PC上位机接收注意 在线程用消息信号量,否则数量大CPU占用率太高,最简单下位机发送数据转换为字符型的明码(速度也很快),但占字节稍多些,
txcy 发表于 2013-10-27 21:41 | 显示全部楼层
要协议,你直接比较会出问题的
比如,每一帧都以0x12,0x34,0x56,0x78,4字节开头
然后+一个字节的数据类型或者该帧是给谁的,比如给线程1,就0x01,给0x02
然后+二个字节的数据长度,比如你是发300个字节则为0x01,0x2c
然后是数据,比如你那300个字节
最后是校验,把前面所有的用32位(4字节)或者16位(二字节)加起来不足的补零
如上面(按16位加)就是SUM=0x1234+0x5678+0x0101+0x2c..+....
所以最终就是
帧头4字节 0x12 0x34 0x56 0x78
帧所属进程1字节 0x03
帧内数据长度2字节 0x01 0x2c
帧数据....
校验
hsbjb 发表于 2013-10-28 16:40 | 显示全部楼层
LS分析的很详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

2284

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部