Linux 串口通讯的偶校验实现
Linux系统下串口通讯是嵌入式系统开发经常使用的技术,它能够方便地连接网络和语音等外部硬件装备。串口通讯是一种非常古老的通讯技术,既可以用于两个连接装备之间的数据交换,也能够用来连接计算机和外部装备。 Linux系统下,串口通讯中最经常使用的校验方式是偶校验(Even Check),它能有效的避免接收数据的毛病而且实现起来比较简单。
在Linux系统下,要实现串口通讯偶校验,首先得对串口进行相应的配置。Linux系统下,我们可使用stty命令来实现串口配置,配置以下:
`stty -F /dev/ttyUSB0 speed 115200 cs 8 parodd stop 1`
其中speed参数:表示串口的速度,设置为115200;cs参数:表示串口的数据位,设置为8;parodd参数:表示串口的偶校验;stop参数:表示串口的停止位,设置为1。
完成对串口的配置后,我们可使用cat命令来实现串口的读取:
`cat /dev/ttyUSB0`
cat命令将会连接到终端,并进行数据读取。
由于偶校验有效的避免了接收数据的毛病,我们通常在读取串口数据以后,应使用一定的技术手段来检查数据的完全性,从而减少接收毛病的可能性。
串口偶校验的检查方式有很多种,如果我们使用C/C++实现,可使用以下代码实现:
unsigned char checkdata(unsigned char *data)
{ char temp=0;
int len=strlen(data); for(int i=0;i
{ temp^=data[i];
} return temp;
}
该函数可以用于计算传输过来的数据,并与接收到的校验数据进行比较:
if(checkdata(data)!=checksum)
{ //如果校验毛病,重新接收数据
} else
{ //校验成功,处理数据
}
以上就是Linux系统下,怎么实现串口通讯偶校验的方法,它的实现非常简单,可以有效的避免接收数据的毛病。
文章来源:丸子建站
文章标题:Linux 串口通讯的偶校验实现
https://www.wanzijz.com/view/63290.html