python之serial实现串口通信

        Python的serial库是一个用于串口通信的强大工具。它提供了一个简单而灵活的接口,可以方便地与串口设备进行通信,包括与驱动电机进行通信。

以下是Python serial库的一些主要特性和用法:

  1. 安装serial库:你可以使用pip命令来安装serial库,命令如下:
pip install pyserial
  1. 导入serial库:在你的Python代码中,使用以下语句导入serial库:
import serial
  1. 打开串口:使用serial.Serial()函数创建一个串口对象,并指定串口号和波特率等参数。例如:
ser = serial.Serial(port='COM6', baudrate=9600, timeout=3)  # 根据你的实际情况修改串口号和波特率
  1. 读取串口数据:使用ser.read()方法从串口读取数据。例如,要读取一个字节的数据,可以使用以下代码:
data = ser.read(1)  # 读取一个字节的数据
  1. 写入串口数据:使用ser.write()方法向串口写入数据。例如,要向串口发送一个字节的数据,可以使用以下代码:
ser.write(b'\x01')  # 发送一个字节的数据
  1. 关闭串口:在使用完串口后,记得关闭它以释放资源。使用ser.close()方法关闭串口。例如:
ser.close()

注意,若代码未执行到关闭串口语句发生报错,会导致串口未被关闭。在下一次执行代码时会报错串口被占用!

以下是简单的串口通信例子: 

import serial
import time

ser = serial.Serial(port='COM6', baudrate=9600, timeout=3)

# 设置 RS-485 相关参数
ser.rts = True  # 设置 RTS 为高电平,发送数据
ser.dtr = False  # 设置 DTR 为低电平,接收数据

# 准备要发送的数据
data = bytes.fromhex('01 06 00 46 00 01 8A 4E')

# 发送数据
bytes_written = ser.write(data)

# 验证是否成功发送数据
if bytes_written == len(data):
    print("数据发送成功!")
else:
    print("数据发送失败!")

# 等待一段时间,确保数据发送完成
time.sleep(0.1)

# 接收数据
received_data = ser.read(10)  # 读取10个字节的数据

# 打印接收到的数据
print("接收到的数据:", received_data)

# 关闭串口
ser.close()

此外,serial库还提供了其他一些有用的功能,如设置串口参数、超时处理、流控制等。你可以查阅serial库的官方文档以了解更多详细信息和示例代码。

总结起来,Python的serial库是一个强大而灵活的工具,可以方便地与串口设备进行通信。通过合理使用serial库的函数和方法,你可以实现与驱动电机的串口通信。

你可能感兴趣的:(python,单片机,开发语言)