我正在尝试通过Raspberry Pi 2(树莓派)和STM32F4板之间的串行连接(GPIO UART引脚)发送/接收数据。我在链接中使用示例代码:http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port/using-the-uart

当我将板上的TX和RX引脚连接在一起时,它可以工作。但是,当我通过模块USB-TTL PL2303将RPI连接到笔记本电脑并使用超级终端查看结果时,收到的字符为垃圾字符。我不明白为什么。我有什么想念的吗?
请给我一些我可以寻找的建议吗?谢谢!

最佳答案

您很可能使用的波特率不正确。它应该是115200(115200-8-N-1)(可以使用else,但随后需要将两个端点都设置为相同的波特)。使用stty检查串行连接的波特率

stty -F /dev/ttyX

setserial。如果出现波特率错误,您可以尝试使用作者所说的内容:


  尝试使用较低的BAUD速率(或单个0xFF字节,仅包含
  从低位开始),看看是否可行。使用115k2波特率时遇到问题
  与RPi通信的微控制器可能命中的速率
  113636baud或119047baud。 113636baud的误差幅度最低,因此
  我们使用它和微控制器接收到的RPi中的TX
  工作正常。但是,当向RPi传输时,什么也没有
  收到。将微控制器更改为使用119047baud会导致RX
  工作。

关于c - Raspberry Pi无法通过串行通信将数据发送到PC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33279227/

10-13 07:10