我正在尝试在 BeagleBone 和我的笔记本电脑之间建立串行连接。这类似于我之前在 Arduino 和笔记本电脑上成功使用的设置。问题是,虽然机器之间显然有信号传递,但输出似乎已损坏。
BB 连接到 TX 和 RX 线上的 Bluesmirf Silver。
我用 Python 编写了一个类来处理串行通信。这在 BB 和 Arduino 之间进行通信时效果很好,所以我非常确信我已经处理了引脚、多路复用器模式等的设置。
但是相同的代码在通过 Bluesmirf 时无法工作。一切都设置为 19200 波特 8-N-1,从 BB 发送到笔记本电脑的文本以一系列 0xE0 字符的形式到达。更改波特率(是的,我很小心地在两端更改它)可以改变笔记本电脑上显示的内容 - 有时什么都无法通过,有时它显然是随机的。但是,大多数情况下,字节似乎具有很高的价值。在 19200 处,显示的字节数比发送的字符数多两个或三个字节。
使用 Serial()(即 PySerial)将 self.serPort 定义为串行端口后,我使用以下内容发送文本(作为字符串“sendStr”传递):
self.serPort.write(sendStr.encode('utf-8', 'replace'))
我试过使用'ascii'而不是'utf-8'
在同一个程序中,我以相同的方式将相同的字符串发送到 Arduino,Arduino 将其回显,并且在那里一切正常。只是通过 Bluesmirf 的东西让我很伤心。
(作为记录,在笔记本电脑 MacBook Pro 上,我使用 CoolTerm 进行发送和接收。在我之前的设置中,Arduino 通过 Bluesmirf 与笔记本电脑通信,笔记本电脑正在运行处理草图。我试过了与 BB 设置相同的草图,但仍然没有乐趣)。
有任何想法吗?