首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PySerial,一个串口通信Python库!

PySerial - 搞定串口通信so easy!

串口通信听起来挺高大上,但用Python搞起来真的很简单!PySerial这个库就是专门干这事的,支持Windows、Linux、Mac这些系统,装上就能用。我觉得这玩意儿特别实用,要是你在搞硬件开发、传感器数据采集啥的,肯定用得着。

先整一个环境

安装贼简单,一行命令搞定:

pip install pyserial

要是装不上,可能是pip版本太老,升级一下:

python -m pip install --upgrade pip

串口长啥样?

串口有几个重要参数要记住:

端口号:就是COM几,Linux下可能是/dev/ttyUSB0这种

波特率:传输速率,常用9600、115200

数据位:一般是8位

校验位:检查数据对不对,一般不用(NONE)

停止位:一般设1位就行

温馨提示:端口号找不着?设备管理器里瞅瞅!

上手撸代码

来个最基础的读写操作:

import serial

import time

# 创建串口对象,我这用的COM3,你要改成你自己的

ser = serial.Serial('COM3', 9600, timeout=1)

try:

# 发送点数据

ser.write(b'hello') # 记得加个b,转成bytes

# 等会儿,让数据发完

time.sleep(0.1)

# 读取数据

if ser.in_waiting: # 有数据才读

msg = ser.read(ser.in_waiting)

print(f“收到:{msg.decode()}”) # 转成字符串打印

except Exception as e:

print(f“哎呀,出错了:{e}”)

finally:

ser.close() # 记得关串口!

找串口神器

不知道电脑上有啥串口?PySerial自带扫描功能:

for p in ports:

print(p.device, p.description) # 打印端口信息

一些骚操作

读取时设超时,免得一直卡着:

读一行数据:

msg = ser.readline() # 读到换行符为止

清掉缓冲区:

ser.reset_input_buffer() # 清输入

ser.reset_output_buffer() # 清输出

温馨提示:串口要是一直读不到数据,检查下波特率对不对!这个坑我踩过好多次…

用PySerial搞串口通信就是这么简单!记得写代码时加上异常处理,串口这玩意儿容易出意外。要是想看更多花样,翻翻官方文档,里面有不少高级玩法。

代码写得不对?串口连不上?别急,这都是成长必经之路!慢慢来,总能整明白~

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ow5t4YGV3j2Eh7n_Q7CRYJMw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券