标题:
单片机通信 要带校验位的
[打印本页]
作者:
海哥沧海一笑
时间:
2015-6-11 09:17
标题:
单片机通信 要带校验位的
rs232通信,要有校验位,数据位,命令位,帧头帧尾,给个例程谢谢!
自己以前写过不带校验位的,但有时候通信错误 ,所以要一个带校验位的。
作者:
海哥沧海一笑
时间:
2015-6-11 14:31
大神们 ,给个程序看看呗,我学习一下,
作者:
海哥沧海一笑
时间:
2015-6-11 18:30
在通信中要求单字节偶校验,很少碰到在这里校验的,一般都是帧校验就可以了,但是为了提高精度,就加了偶校验。那么用C语言怎么来处理单片机收发的偶校验问题呢?直接使用项目中的要求:波特率:9600,偶检验,停止位1,数据位 51单片机奇偶校验C51程序 采用偶校验,单片机串口方式3,9位数据,最后一位是奇偶校验位。 偶校验:就是发送的8位数据中1的个数为偶数时,TB8=0;为奇数时,TB8=1; 奇校验:就是发送的8位数据中1的个数为奇数时,TB8=0;为偶数时,TB8=1; 由于PSW(程序状态寄存器)中的P可以表达累加器A中“1”的个数的奇偶性,具体如下: P(PSW.0)奇偶标志位: P=1,A中“1”的个数为奇数 P=0,A中“1”的个数为偶数 所以要用P和TB8、RB8作为发送与接收的判据,则必须使用偶校验。 C语言程序如下:
发送程序
Void chek_even(uchar data)
{
ACC=data;
TB8=P;
SBUF=data;
While(!TI);
TI=0;
}
接收程序
Void chek_even(uchar data)
{
While(!RI);
RI=0;
data= SBUF;
ACC=data;
If(RB8==P)chek_flag=0;
Else chek_flag=1;
}
网上找的, 这两个函数怎么用
作者:
coody_sz
时间:
2023-8-22 22:35
强烈建议使用MODBUS协议,世界通用。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1