51 单片机的多机通信,有些特殊。它专有一个控制位 SM2 。
当把 SM2 设置为 1 后,单片机的串口,就仅仅接收《第 9 位为 1 的数据》。
对方发送的《第 9 位为 0 的数据》 ,接收机的串口是不理会的。
本来,串行通信的第 9 位数据,通常都理解成奇偶校验位,还是可有可无的。
但是,在 51 单片机多机通信的场合,第 9 位的意义就变了,而且还不可缺少。
嗯,看来,还得把串口设置成方式 2 或方式 3,这才是《9 位数据》的通信方式。
为了用 T1 控制波特率,还是用方式 3 比较合适。
多机通信的流程如下:
1.各从机,先设置 SM2 为 1,处于只接收《第 9 位为 1》的状态。
2.主机,以《第 9 位为 1》的形式发送一个字节到全部从机。
3.各从机把收到字节,与本机的号码相对比,应该只有一台从机是相同的。
4.该从机,可以把自己的 SM2 清零了,此后,它就可以和主机进行双机通信。
5.主机和该从机双机通信时,应该用《第 9 位为 0》的形式,以免被其它从机窃听。
6.当该从机收到表示结束通信的字节时,再把自己的 SM2 置 1。
下载资料需要登录,并消耗一定积分。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !