运行示例程序
接下来就可以运行串口通信的例程了。
$ sudo python3 test_serial.py
实物接线完成后,在旭日X3派的终端中输入指令启动例程,很快就可以在终端中看到串口向外发送的数据了。
在串口连接的电脑中打开一个串口软件,用来接收和发送数据,设置好端口和波特率,就能看到旭日X3派发过来的数据了。我们再使用电脑的串口软件尝试下发送数据给旭日X3派,输入1234,点击发送,可以看到,X3Pi的终端这边也成功的接收到了数据并且打印出来了。
代码解析
test_serial.py:
#!/usr/bin/env python3
import sys
import os
import time
# 导入python串口库
import serial
import serial.tools.list_ports
def serialTest():
print("List of enabled UART:")
os.system('ls /dev/tty[a-zA-Z]*')
uart_dev= input("请输入需要测试的串口设备名:")
baudrate = input("请输入波特率(9600,19200,38400,57600,115200,921600):")
try:
ser = serial.Serial(uart_dev, int(baudrate), timeout=1) # 1s timeout
except Exception as e:
print("open serial failed!n")
print(ser)
print("Starting demo now! Press CTRL+C to exit")
while True:
test_data = "AA55"
write_num = ser.write(test_data.encode('UTF-8'))
print("Send: ", test_data)
received_data = ser.read(write_num).decode('UTF-8')
if received_data :
print("Recv: ", received_data)
time.sleep(1)
ser.close()
return 0
if __name__ == '__main__':
if serialTest() != 0:
print("Serial test failed!")
else:
print("Serial test success!")
X3Pi这边如果要使用串口,直接使用serial库就可以了,这里我们先调用系统的库,打印出当前有哪些串口,然后手动输入选择串口的设备名,再输入串口的波特率,就可以进项串口的初始化了,初始化成功之后就会进入循环。
循环中,X3Pi会每隔一秒发送一次AA55,同时还会判断是否接收到了数据,如果接收到了数据也会打印出来。
全部0条评论
快来发表一下你的评论吧 !