找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 786|回复: 4
收起左侧

单片机串口如何接收数据,找的例程看不懂

[复制链接]
ID:601478 发表于 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;
}

回复

使用道具 举报

ID:443261 发表于 2019-11-19 18:51 | 显示全部楼层
PSW.0(P):奇偶校验位
RB8 为接收到的第9位    这个意思是串口做了奇偶校验
回复

使用道具 举报

ID:263427 发表于 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位,应该能看懂,要是还是感觉吃力的话,就继续查资料。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:190832 发表于 2019-11-19 19:06 | 显示全部楼层
等待接收数据;
回复

使用道具 举报

ID:190832 发表于 2019-11-19 19:07 | 显示全部楼层
等待接收数据;
清接收到数据标志;
读取接收的数据;  //这就是前三行的注释
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表