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: 请问如何在UCA1上实现半双工UART-TTL通讯?

Part Number: MSP430FR5969

您好!

之前我用UCA1实现了和其他传感器实现RX TX收发数据。

但是现在一个新的传感器,只有一根总线,要求半双工通讯,9600,8,n,1.

电路中,我将单片机的P2.6 RXD MISO 接在传感器的通讯脚上。 TXD脚悬空。

第一次尝试:用原始代码发送数据,RXD立刻会中断收到数据,我无法理解TXD脚悬空,为何RXD会收到TXD缓冲区的数据呢?

我在想既然RXD能收到数据,传感器会不会也收到数据?不过好像没有回应。于是我发送时把接收中断禁止,发送完毕后再开接收中断,RXD就没有收到数据了,当然传感器似乎也没有收到。

请问如何改造成半双工通讯?

1. 将P2.6用IO口模拟发送和接收?

2. 将P2.6用IO口模拟发送,发送完毕后,P2SEL0和P2SEL1将它改为系统模块UART功能来接收数据?

3. 单片机天生支持半双工,只是我不会配置?

希望帮我解答一下,谢谢!

  • 您好

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待

  • 您好,

          MSP430FR5969的UART是全双工模式,无法用作半双工模式。

  • 好的,谢谢!

    请问有没有用1个IO模拟 UART通讯的示例代码?

  • 您好,

          理论上来说,将MCU的RXD与TXD脚连接,同时设置TXD为高阻态,还具有一定的可行性。

          如果用IO口模拟UART,在发送时通过定时器控制I/O口电平,在接收时捕获I/O电平,然后通过软件解析。

         TI没有这样的示例,但您可以去网络上搜索一下类似的示例。     

  • 好的,感谢您!

    目前发现如果P2.5悬空(TXD),发送数据时,会触发中断收到刚刚发送的数据。难道悬空时,内部给自动回路了?

    不知道是不是我的错觉。 我也打算将RXD和TXD短路试试。

    刚刚试了模拟的IO口,有点点问题。有少数字节是错误的。

    等我调试好了,分享给大家。