Python raspberry pi和teensy之间的串行通信(使用UART/GPIO引脚)

Python raspberry pi和teensy之间的串行通信(使用UART/GPIO引脚),python,arduino,raspberry-pi,serial-port,teensy,Python,Arduino,Raspberry Pi,Serial Port,Teensy,我试着从我的树莓圆周率(raspberry PI)到一个teensy(一个arduino,对于那些不熟悉的人来说,它可以假装成鼠标和键盘)进行交流 我想接收有关arduino的信息,并根据该信息移动鼠标 在arduino方面,我制作了以下测试脚本: void setup(){ Serial1.begin(9600);//根据Teensy文档,这是我板上的RX1和TX1。 //串口本身对micro usb端口有腐蚀性 } 字符串msg=“”; void循环(){ 如果(Serial1.availa

我试着从我的树莓圆周率(raspberry PI)到一个teensy(一个arduino,对于那些不熟悉的人来说,它可以假装成鼠标和键盘)进行交流

我想接收有关arduino的信息,并根据该信息移动鼠标

在arduino方面,我制作了以下测试脚本:

void setup(){
Serial1.begin(9600);//根据Teensy文档,这是我板上的RX1和TX1。
//串口本身对micro usb端口有腐蚀性
}
字符串msg=“”;
void循环(){
如果(Serial1.available()>0){
msg=“”;
while(Serial1.available()>0){
char read=Serial1.read();
msg+=读取;
}
Serial1.write('X');//回复确认
}
Serial1.println(msg);//输出到控制台进行调试
//应该是1-9号
//TODO:进一步处理
}
在raspberry pi上,我运行以下测试脚本:

导入时间
导入序列号
随机输入
ser=串行。串行(
端口='/dev/ttyS0',
波特率=9600,
奇偶校验=串行。奇偶校验\u无,
停止位=串行。停止位\u一,
bytesize=serial.EIGHTBITS,
超时=1
)
尽管如此:
n=random.randint(1,9)
打印(“书写”,n)
序列号写入(n)
时间。睡眠(1)
反馈=ser.read()
打印(反馈)//应为“X”
当我运行脚本时,在串行控制台中看不到任何输出以及一条空消息(
b'
)(请注意超时参数)

我已经启用了与raspi config的串行通信并重新启动。当我列出设备(
ls-l/dev/
)时,我可以看到:

lrwxrwxrwx  1 root root           5 Apr 28 20:21 serial0 -> ttyS0
lrwxrwxrwx  1 root root           7 Apr 28 20:21 serial1 -> ttyAMA0
作为附加测试,我在pi上用一根电线将RX连接到TX,运行了
minicom-b9600-o-D/dev/ttyS0
,它成功地返回

我是否有代码问题或可能的硬件问题?也许因为这是一个很小的问题,所以需要一些不同的协议?看

我不知道它为什么不能正确沟通。这是我的接线:

您将接收线连接在一起,将发送线连接在一起。一方传输另一方需要接收的内容。您需要转到Tx-Rx和Rx-Tx。

您可以使用arduino IDE串行终端与teensy通话吗?或者迷你们。。。我看到这个问题的大部分时间是arduino在打开端口后有一些小的串行启动时间。。。在python打开arduino的串行端口后,尝试在发送任何数据之前先休眠几秒钟。我是不是看错了图片,还是你有Rx Rx和Tx Tx Tx?@Delta_G它不是应该对齐的吗?当你和某人说话时,你会对着他们的嘴说话,听他们的耳朵说话吗?一方传输另一方需要接收的内容。