当使用RCM5600W开发套件时,我遇到了问题。

为什么接收缓冲区不空后,我冲洗串行输入缓冲区,然后发送数据?

我发送数据出串行端口,但数据也进入串行缓冲区。它的回声模式?

/ / 1。清除RX缓冲区serXrdFlush(SER_PORT_F);/ / 2。print ("RX buffer AFTER FLUSH: %d ", serXrdUsed(SER_PORT_F));// result = 0 //发送模式serF->xRTSon();/ / 4。发送数据serXputc(SER_PORT_F, EOT);serXputc (SER_PORT_F的DeviceID);serXputc (SER_PORT_F,轮询); serXputc(SER_PORT_F, ENQ); // 5. Wait until data is sent while(serXwrUsed(SER_PORT_F)>0); // 6. Read RX buffer status, Why RX buffer is not empty, I clear RX buffer on top of code(step 1). // I see 4 characters in RX buffer (Its problem). printf("RX BUFFER AFTER TRANSMITE: %d ", serXrdUsed(SER_PORT_F)); // result = 4 // 7. Receive mode serF->xRTSoff(); // Receive data in here

我通过改变RCM5600W串行通信附件板中的现有布线来解决这个问题。

我切断了从SP3072EEN的引脚/RE(2)到地(GND)的接线,并将引脚/RE(2)与引脚DE(3)连接。

通过如上所述改变接线方式,这样当我们将数据发送出串行端口时,数据实际上只是输出,而不会进入串行缓冲区(回声模式)。: slight_smile: