单片机串行通信SM2怎么用?

书上写了,但看不太明白。请以最常用的串口模式1和串口模式3为例,讲讲在发送和接收时它该怎么置位以及有什么作用!先谢谢了,刚学单片机的菜鸟,不胜感激!... 书上写了,但看不太明白。请以最常用的串口模式1和串口模式3为例,讲讲在发送和接收时它该怎么置位以及有什么作用!先谢谢了,刚学单片机的菜鸟,不胜感激! 展开
 我来答
hhu月光大侠
推荐于2017-12-16 · 测测控控-CPU/PLC/传感器
hhu月光大侠
采纳数:303 获赞数:1997

向TA提问 私信TA
展开全部
SM2多机通讯控制位:
SM2=0 时,只能进行点对点通讯
SM2=1 时,可以进行多机通讯,与通讯的第9位数据配合;

这第9位信息方式1没有;
所以方式1下通常SM2=0 ,只进行点对点通讯;
方式1下,将接收移位寄存器中的8位数据存入串行口数据缓冲器SBUF,收到的停止位被装入RB8。

方式2、方式3:为9位异步通讯,发送、接收一帧信息由11位组成,即起始位1位(0)、数据8位(低位在前)、1个可编程位(第9位)、1个停止位(1)。
当通讯的第9位信息是1时,代表是地址帧信息;
当通讯的第9位信息是0时,代表是数据帧信息;

通讯完成后,接受方在9位数据收齐之后,还必须同时满足以下两个条件,这次接收才被真正确认:
——RI=0(上次装入SBUF的数据已被取走);
——SM2=0或接收到的第9位RB8为1
当满足这两个条件时,将接收移位寄存器中的8位数据装入串行口数据缓冲器SBUF,使接收中断标志RI置1。
若这两个条件不满足,则所接收的数据无效,串行口接着又开始寻找下一个起始位,准备接收下一帧数据。
zhxiufan
2013-11-23 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38385
国家科技进步奖

向TA提问 私信TA
展开全部
SM2——多机通信控制位
多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lycdl
高粉答主

2013-11-23 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4909万
展开全部
SM2是专为多机通信而设置的标志位,也不必为这个事所困惑,这大概是早期做多机通信时才考虑的问题吧,而如今,再做多机通信几乎是用不到了,特别是与电脑构成多机通信网络时,就更不能用了,用了反倒是无法通信了。而且,就算是想用,也是很麻烦的,特别是在编写软件时是很累的,单片机有些资源,不一定就非要用不可,只要实际设计电路能够满足设计上技术要求就可以,不必什么东西都要用到,有些东西用了反倒很麻烦,有点自找烦恼了。现在,在工控上几乎都用Modbus协议了,就不能用这个SM2的,用了就无法与电脑通信了。所以,还是先学习一些基础的有用的吧,不用再困扰了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式