0

我在我的android设备和232设备之间开发232通信时遇到了一个非常奇怪的问题。我想在我的 MCU 和 232 设备之间建立通信,232 设备的波特率为 115200。

我所做的如下:我open()一个端口ttyO0并获得了一个文件描述符fd1。我tcsetattr(fd1,TCSAFLUSH,termiosA)用来映射termiosAfd1. termiosA波特率 9600 所以它与我的 232 设备不兼容。

后来我破坏了之前创建的内容,并通过更改fd1fd2termiosA来再次执行上述过程termiosBtermiosB波特率115200 。

但是,我发现它仍然无法正常工作。我猜原因是该tcsetattr()函数实际上是在物理端口和设置之间进行映射,而不是在文件描述符和设置之间进行映射。所以我的 CPU 中的实际物理端口被映射到 first 的设置,并且由于某种原因termiosA没有再次更改。termiosB因此 MCU 和 232 设备之间的通信失败。

4

0 回答 0