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.
您好!
之前我用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. 单片机天生支持半双工,只是我不会配置?
希望帮我解答一下,谢谢!
您好,
理论上来说,将MCU的RXD与TXD脚连接,同时设置TXD为高阻态,还具有一定的可行性。
如果用IO口模拟UART,在发送时通过定时器控制I/O口电平,在接收时捕获I/O电平,然后通过软件解析。
TI没有这样的示例,但您可以去网络上搜索一下类似的示例。
好的,感谢您!
目前发现如果P2.5悬空(TXD),发送数据时,会触发中断收到刚刚发送的数据。难道悬空时,内部给自动回路了?
不知道是不是我的错觉。 我也打算将RXD和TXD短路试试。
刚刚试了模拟的IO口,有点点问题。有少数字节是错误的。
等我调试好了,分享给大家。