标题:
单片机串口如何接收数据,找的例程看不懂
[打印本页]
作者:
PDDDF
时间:
2019-11-19 15:49
标题:
单片机串口如何接收数据,找的例程看不懂
void ReceiveData()
{
while(RI==0);
RI=0;
state=SBUF;
ACC=state;
if(RB8==P) //这句判断看不懂
data_true=1;
else
data_true=0;
}
作者:
diego2003
时间:
2019-11-19 18:51
PSW.0(P):奇偶校验位
RB8 为接收到的第9位 这个意思是串口做了奇偶校验
作者:
jscsd226
时间:
2019-11-19 19:02
您好,这是单片机串口通信的奇偶校验。
偶校验:就是发送的8个数据位的1的个数为偶数时,TB8=0;为奇数时,TB8=1;
奇校验:与偶校验相反的TB8。 先讲发送字节时的偶校验:
先看下汇编的解决方案是什么: MOV A,@R0 MOV C,P MOV TB8,C MOV SBUF,@R0
再看下C语言的解决方案:
void chk_even(uchar dat)//要发送的数据位dat { ACC=dat; TB8=P; SBUF=dat; while(TI==0); TI=0;
}
这只是发送的一个字节的偶校验 ,接收时的为RB8位,应该能看懂,要是还是感觉吃力的话,就继续查资料。
作者:
hange_v
时间:
2019-11-19 19:06
等待接收数据;
作者:
hange_v
时间:
2019-11-19 19:07
等待接收数据;
清接收到数据标志;
读取接收的数据; //这就是前三行的注释
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1