This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
场景描述:一个树莓派和多个MSP430FR5969单片机之间实现uart通信,其中树莓派是主机,而有多个FR5969作为从机。
功能需求:主机通过uart向多个FR5969从机广播信息,从机根据广播信息中的消息ID判断是否接受消息;所有从机接受消息后都会给主机回送消息,同时一个从机能够监听到其他从机发送的消息。
问题:1.如何协调多个从机依次向主机发送消息? 2. 如何实现一个从机监听其他从机发给主机的消息?
您好,关于您的问题,最好的解决方法是使用I2C的通信接口,如果您可以切换到使用 I2C的话,建议您使用这种方法。除此之外,我们就需要从发送的消息以及控制器对其的响应方式中找相应的解决办法。
对于发送的消息:您可以在发送的消息中添加标识符,例如标记一个数字,来识别是哪个设备发送了什么消息。 然后必须读取发送的消息、查找标识符编号以了解消息来自哪个器件,并执行相应的调用函数。
1.如何协调多个从机依次向主机发送消息?
依次发送消息的话,主控制器发送的消息可以调用需要响应的器件,或者您可以设置延迟 (不首选)。
. 如何实现一个从机监听其他从机发给主机的消息?
您只需将 Tx 线路连接到您要监听其他外设的器件的 Rx 线路就行。
您可以将所有器件连接到 UART 的相同 RX 和 TX 线路、以便它们都使用相同的线路。 基本上额外的I2C都需要这样设置。
您好, 您的问题不是 MSP430 硬件问题, 而是软件 protocol问题。
最简单的处理方法是: 目标在接收到消息后立即响应。 如果目标可以随时发送消息, 那么您必须实施collision detection以及avoidance(在这种情况下通道容量将下降).