在Python中实现串口通信,通常使用`PySerial`库。以下是使用`PySerial`进行串口通信的基本步骤和示例代码:
步骤
安装PySerial库
使用pip安装:
pip install pyserial
导入库
在Python代码中导入`serial`模块:
import serial
配置串口参数
设置串口名称、波特率、数据位、停止位、校验位等参数:
ser = serial.Serial(
port='COM3', 串口名称,Windows系统使用'COMx',Linux系统使用'/dev/ttyUSBx'等
baudrate=9600, 波特率
bytesize=8, 数据位
parity='N', 奇偶校验位
stopbits=1, 停止位
timeout=0.1 读取超时设置
)
打开串口连接
使用`open`方法打开串口:
ser.open()
发送数据
使用`write`方法发送数据,数据需要编码为字节流:
ser.write(b'Hello!') 发送字节数据
接收数据
使用`read`方法接收数据,返回的数据是字节类型,可以使用`decode`方法转换为字符串:
data = ser.read(10) 读取10个字节的数据
print(data.decode('utf-8')) 将字节数据解码为字符串
关闭串口连接
使用`close`方法关闭串口连接:
ser.close()
示例代码
import serial
from time import sleep
def port_open_recv():
ser = serial.Serial()
ser.port = 'COM3'
ser.baudrate = 9600
ser.bytesize = 8
ser.stopbits = 1
ser.parity = 'N'
ser.open()
if ser.isOpen():
print('串口打开成功!')
else:
print('串口打开失败!')
def port_close():
ser.close()
if ser.isOpen():
print('串口关闭失败!')
else:
print('串口关闭成功!')
def send(send_data):
if ser.isOpen():
ser.write(send_data.encode('utf-8'))
print('发送成功', send_data)
else:
print('发送失败!')
if __name__ == '__main__':
port_open_recv()
while True:
a = input('输入要发送的数据: ')
send(a)
sleep(0.5) 延时效果
以上代码展示了如何使用`PySerial`库进行串口通信的基本流程。请根据你的具体需求调整串口参数和通信逻辑。