程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(4)

pyserial串口学习

发布于2019-08-07 11:55     阅读(1172)     评论(0)     点赞(0)     收藏(3)


环境

  1. python版本:3.7
  2. win10
  3. pip 18.1
  4. pyserial 3.4

买了一个小玩具,测空气质量的,数据通过串口传输,所以就想用python写一个读数据的小程序。

前期准备

安装pyserial

serial就是串口的意思,用来操作串口名字起的还是很不错的(看谁先下手)

打开cmd(开始里搜索就能找到),安装pyserial

pip install pyserial
  • 1

有兴趣的可以去看看pyserial文档

确认安装成功,使用

pip list
  • 1

pyserial_pip_list

如图所示,有pyserial就成功啦,如果速度很慢可以去网上搜搜如何换国内镜像,换完之后重启cmd重新安装即可体验飞速。

查看COM口工具

python -m serial.tools.list_ports -v
  • 1

,可以列出所有串口名称及属性。

pyserial_list_ports

常用的方法函数

导入串口模块import serial;
打开串口ser = serial.Serial(端口名称,…其他参数),ser.open()方法可以在close之后再次打开相应端口;
关闭串口ser.close();
通过串口写入ser.write(b’’),参数需要使用字节bytes类型,如果是str类型,则可以使用encode(‘utf-8’)的方式进行转换;
读取模块信息的方法如下,x = ser.read()读取一个字节,x=read(n)读取n个字节,readline()可以用来读取一行。
port端口名字,windows下为’COM1’等;
baudrate (int)波特率,可以设置的范围9600到115200;
bytesize为每个字节的比特数,设置值为FIVEBITS, SIXBITS,SEVENBITS, EIGHTBITS 5-8比特;parity设置校验位PARITY_NONE, PARITY_EVEN,PARITY_ODD PARITY_MARK, PARITY_SPACE,用来设置校验位;
stopbits停止位,用来指示字节完成,可以选择的设置STOPBITS_ONE,
STOPBITS_ONE_POINT_FIVE, STOPBITS_TWO;
write_timeout(float) 写入超时设置;
timeout (float)读出超时设置;
xonxoff (bool)软件流控开关;
rtscts (bool)硬件RTS/CTS流控开关;
dsrdtr (bool)硬件DSR/DTR流控开关。
关于UART流控两线方式没有硬件流控,四线方式采用DSR、DTR进行流控,而RS232标准中可以有DSR、DTR的流控方式。
RTS-request to send;
CTS- clear to send;
DSR-data set ready;
DTR-Data Terminal Ready。

关键代码

自动连接串口

plist = list(serial.tools.list_ports.comports())
if len(plist) > 0:
    comlist_0 =list(plist[0])
    ser = serial.Serial(comlist_0[0], 9600, timeout=60)

  • 1
  • 2
  • 3
  • 4
  • 5

读取数据

ser.read(16) # 读取16字节数据
  • 1

关闭串口

ser.close()
  • 1

支持原创

码文不易,希望支持,谢谢->支持原创

微信支付微信支付

再次感谢,大家对本人的支持。



所属网站分类: 技术文章 > 博客

作者:西红柿煎鸡蛋

链接:https://www.pythonheidong.com/blog/article/10518/857e43998fbdfbcab6e4/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)