Python串口接收

串口通信的接收端通常需要使用一个无限循环来持续监听串口数据。以下是使用Python读取串口数据的示例代码

import serial

ser = serial.Serial('/dev/ttyUSB0', 9600)  # 创建一个串口对象

while True:
    if ser.in_waiting > 0:  # 如果串口有数据可读取
        data = ser.readline().decode().strip()  # 读取串口数据并转成字符串形式
        print(data)  # 打印读取到的数据

:这里使用 `serial` 库创建了一个名为 `ser` 的串口对象,使用 `/dev/ttyUSB0` 作为串口端口,波特率为 9600。在 `while` 循环中,使用 `ser.in_waiting` 方法判断串口是否有数据可读取。如果串口有数据可读取,使用 `ser.readline()` 方法读取一行数据,并通过 `decode()` 方法将二进制数据转换成字符串,再使用 `strip()` 方法去掉字符串两端的空格和换行符。最后打印读取到的数据。

需要注意的是,Python的 `serial` 库的串口读取函数有多种,如 `read()`、`readline()`、`read_until()` 等,可以根据需求选择合适的函数。同时,在使用 `serial` 库时需要考虑设备操作系统和Python版本的差异,例如在Windows系统上需要使用 `COMx` 作为串口端口名,而在Linux系统上则需要使用 `/dev/ttyXXX`。

来一个jetson nano版本的

import serial


# 初始化串口通信,根据实际情况修改串口号和波特率参数
ser = serial.Serial('/dev/ttyTHS1', 115200)


def serial_receiving():
    global frame, flag
    if ser.in_waiting > 0:
        cmd = ser.read(1).hex()
        # 拍照
        if cmd == 'aa':
            print('cmd')

你可能感兴趣的:(python,嵌入式硬件)