关于串口通信经验之谈。
这里并不是简单的发送和接受字符串.
首先,开发环境:PC机,XP系统,使用串口调试助手工具。通信端-ARM嵌入式开发板,LINUX系统。
1.连接物理连线.
2.程序在LINUX下打开串口文件,这里是TTYS0。(现在就已经发送字符串了,但还需要做一些串口属性设置);
3.先设置波特率.(一般小的码率几乎不会出错和丢包).
4.设置屏蔽位.
注:串口通信的精华在此。如果你的程序按照逻辑来说没有问题,但是调试的时候出了问题。多半问题就在属性设置上。例如:只能发收不到或者断字节收。
5.while循环+select可以一直查看串口是否准备好了,有数据则读出。
如何发送自定义协议?
首先先定义你的通信协议,例如协议包组成:关键字,网络标识,长度,数据。为了方便使用你的协议,你可以用SLIP协议,或者别的协议来包装你的协议。
如何发送数据?
发送的数据均为16进制的模式,有些需要转化成网络字节序,16进制的数据包,2位一个字节。
例如:01 02 03 04 05 06 07
ff,每2位是一个字节,一般SLIP协议的一个数据包不超过1006字节。这样接收端就可以根据自定义协议的内容解析包了。
最后,串口通信其实很简单,如果出现怪异的现象,多半是串口属性设置引起的,多尝试即可解决问题。