单片机的串口通信过程问题,具体问题如下,求解。

 我来答
百度网友7247a56
2020-08-20 · TA获得超过4615个赞
知道大有可为答主
回答量:1422
采纳率:92%
帮助的人:477万
展开全部

其实这个是没有为什么的,设计上觉得这样做更好,于是就规定这么做了。

你可以这样理解:由于SM2是专门为了多机通信而设计的,为的是要让从机知道什么时候收到的数据是表示通信地址,从而区分主机是否要和自己通信。SM2=1时,主机发来的第9位数据就可以知道收到的数据是不是自己想要的。

我们先回顾一下TB8、RB8的知识:

SM2,多机通信控制位,主要用于方式2和方式3。当从机的SM2=1时,从机可以利用收到的RB8来控制是否置位RI(产生中断请求)。RB8=0时,表示收到的是数据帧,收到的信息丢弃,不产生中断;RB8=1时,表示收到的是地址帧,收到的数据要进入SBUF,并置位RI,产生中断,在中断服务程序中将数据从SBUF读走,判断该地址帧是否与本机地址一致。若不一致,则保持SM2=1,继续监听。若一致,则清零SM2,以便接收数据帧)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并置位RI,产生中断,在中断服务程序中将数据从SBUF读走处理(即此时RB8不具有控制RI是否置1的功能)。

通过控制SM2,可以实现多机通信。

SM2=1时,从机只想要接收RB8=1的数据(地址帧)。

如果从机要接收主机发来的数据帧,从机要把SM2清零。

从机收完数据帧后,需要把SM2置1,以便下一次与主机通信。

RB8就是主机发来的第9位数据。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式