python(50): 串口通信

12 篇文章 2 订阅

一.简介

嵌入式开发过程中最常用的调试接口为串口,python 中可以使用pySerial库连接串口与设备进行通信。

串口常用配置:

端口号,波特率、数据位、奇偶校验位、停止位、DTR/DSR、RTS/CTS 和 XON/XOFF。
 

二.库安装与基本使用

安装 

pip install pyserial

基本连接 


import serial

port = 'COM1'
bps = 115200
timeout= 10

# 打开并获得串口对象
ser= serial.Serial(port,bps,timeout=timeout)  

# 写数据
result= ser.write("我是112334".encode("gbk"))
print("写总字节数:",result)

# 关闭串口
ser.close()

实例化参数

在使用 serial.Serial() 创建串口实例时,可以传入的参数很多,常用的参数如下(默认值用红色标记):

port -    串口设备名或 None。
baudrate -  波特率,可以是50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000。
bytesize -  数据位,可取值为:FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS。
parity -  校验位,可取值为:PARITY_NONE, PARITY_EVEN, PARITY_ODD, PARITY_MARK, PARITY_SPACE。
stopbits -  停止位,可取值为:STOPBITS_ONE, STOPBITS_ONE_POINT_FIVE, STOPBITS_TOW。
xonxoff - 软件流控,可取值为 True, False。
rtscts -  硬件(RTS/CTS)流控,可取值为 True, False。
dsr/dtr -  硬件(DSR/DTR)流控,可取值为 True, False。
timeout -  读超时时间,可取值为 None, 0 或者其他具体数值(支持小数)。当设置为 None 时,表示阻塞式读取,一直读到期望的所有数据才返回;当设置为 0 时,表示非阻塞式读取,无论读取到多少数据都立即返回;当设置为其他数值时,表示设置具体的超时时间(以秒为单位),如果在该时间内没有读取到所有数据,则直接返回。
write_timeout: 写超时时间,可取值为 None, 0 或者其他具体数值(支持小数)。参数值起到的效果参考 timeout 参数。

常用方法

# 获取 可用串口信息

import serial
import serial.tools.list_ports
 
# 获取所有可用串口
ports_list = list(serial.tools.list_ports.comports())
if len(ports_list) <= 0:
    print("无串口设备。")
else:
    print("可用的串口设备如下:")
    for comport in ports_list:
        print(list(comport)[0], list(comport)[1])

# 读写方法

# 写方法,返回写入字节长度
write_len = ser.write("ABCDEFG".encode('utf-8'))


# 读方法,默认每次读一个字节长度,此处配置长度为10
com_input = ser.read(10)

# 关闭
ser.close()

参考文档:

pySerial API — pySerial 3.4 documentation

python 的串口通信_python串口通信 协议-CSDN博客

用 Python 玩转串口(基于 pySerial)_python打开串口-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值