c/c++ 单片机通讯 硬件驱动 嵌入式
单片机多机通讯的时候,主机的SM2什么时候设置为1什么时候设置为0?我翻阅的基本资料看到的代码好像都不一样。求解答,谢谢!...
单片机多机通讯的时候,主机的SM2 什么时候设置为1什么时候设置为0?我翻阅的基本资料看到的代码好像都不一样。 求解答,谢谢!
展开
1个回答
展开全部
SM2 为 1 时表示只接收上位机发送的地址码或者说一个标识,这要求上位机在发送地址码时TB8必须为1,如果为0,那么你的单片机就不会接收这个数据,也就不会触发接收中断。
当上位机发送地址码且TB8为1,而你的单片机这时SM2为1,就会接收到主机发送的地址码,然后你要做的就是判断这个地址码是否是这个单片机的地址码,如果是就设置SM2为0,然后主机再次发送数据,不管它的TB8为1或0,那么这个单片机都会接收数据。
多机通讯的单片机,每个单片机都自己拥有一个唯一的地址码,这个可以随便设置一个整数
当上位机发送地址码且TB8为1,而你的单片机这时SM2为1,就会接收到主机发送的地址码,然后你要做的就是判断这个地址码是否是这个单片机的地址码,如果是就设置SM2为0,然后主机再次发送数据,不管它的TB8为1或0,那么这个单片机都会接收数据。
多机通讯的单片机,每个单片机都自己拥有一个唯一的地址码,这个可以随便设置一个整数
更多追问追答
追问
主机的SM2设置为0有何意义?也就是说主机在给从机发送消息的时候将SM2设置为1和设置为0有何区别,对从机有什么影响?
追答
上位机不需要操作 SM2 ,SM2只对下位机在接收数据时是否接收地址码的一种开关而已
上位机需要特别注意的是要设置TB8这个,不是SM2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询