stm32串口多机通讯,一主多从

2019-08-16 23:03发布

求教,stm32做一主多从通讯怎么做的呢?我知道主向从发数据可以用以下模式唤醒。
USART_WakeUpConfig(USART3, USART_WakeUp_AddressMark);
USART_SetAddress(USART3, 0x05);
USART_ReceiverWakeUpCmd(USART3, ENABLE);

现在主要问题不知道,主机怎么判断数据是哪个从机发送过来的,从机向主机发送数据的协议一般是怎样的。求大神指导一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
dickbbk
2019-08-17 09:28
现在做了个类似modbus协议的通讯,主机发送到从机,从机接收到然后发送回给主机。(直接串口TTL)
但是加上释放总线的时候,数据的错误率很多。我是这样做的,从机收完数据后(3.5字节时间没有新数据)而且是自己的地址,将TX设置成GPIO_Mode_AF_PP。然后从机发送数据到主机,发送完后(判断USART_IT_TC位)将TX设置成GPIO_Mode_IN_FLOATING。
按照上面的说法做,数据错误率接近50%。如果不进行从机TX的设置数据不会出错。但是这样又不能实现多机通讯了。

一周热门 更多>