在星光派官方提供的文档:3.赛昉科技40-Pin GPIO Header用户手册.pdf 中,演示了,如何在星光派的系统中,使用minicom进行串口通讯。
使用Python语言,也可以非常方便的应用串口,进行数据交互。
这个分享中,演示星光派和电脑,通过串口进行通讯。
首先按照文档中的说明,启用UART1和UART2,并注意对应的挂载点:
要让星光派和电脑进行串口通讯,需要先用USB2TTL进行连接,具体连接如下:
在星光派上,我们使用UART1,对应的串口为/dev/ttyS2,通信波特率使用最常见的115200
然后,可以在星光派编写如下的程序:
# -*- coding: UTF-8 -*-
import serial
from time import sleep
def recv(serial):
while True:
data = serial.read_all()
if data == '':
continue;
else:
break;
sleep(0.02)
return data
if __name__=="__main__":
serial = serial.Serial("/dev/ttyS2", 115200, timeout=0.5)
if serial.isOpen():
print("open success, wait for data")
else:
print("open failed")
exit(1)
while True:
data = recv(serial)
if data != b'':
print("StarFive receive:", data)
serial.write(data)
保存为uart_recv.py,并运行:
python uart_recv.py
运行后,如果打开串口成功,建辉提示打开成功,并等待数据:
然后,我们再到电脑上,编写如下的程序:
# -*- coding: UTF-8 -*-
import serial
from time import sleep
if __name__ == "__main__":
serial = serial.Serial("电脑的串口端口", 115200, timeout=0.5)
if serial.isOpen():
print("open success")
else:
print("open failed")
exit(1)
i = 0
while True:
i+=1
data = "test %d" % i
serial.write(data.encode('utf-8'))
print("send:", data)
sleep(1)
并保存为python_send.py。
注意,上述代码中,`电脑的串口端口`需要修改为你系统实际对应的。
在电脑上运行:
python uart_send.py
在星光派上运行的程序中,就会收到对应的数据了。
因为我是在macOS上操作,所以通过ssh连接到星光派操作,电脑上本地在命令行操作,得到的结果如下:
如果把上面的两个程序反过来,就能够在星光派上发送数据,在电脑上接收了。
进一步的,你还可以进行双向的收发通讯测试。
本帖最后由 HonestQiao 于 2022-8-2 13:30 编辑