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')

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值