加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python的串口通信(pyserial)

发布时间:2020-12-16 23:57:57 所属栏目:Python 来源:网络整理
导读:? ? ? ? ?串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial

? ? ? ? ?串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。

?安装:

pip3 install pyserial

?测试:

两个CH340 (TTL转串口模块)接入到PC串口上,通过Python进行数据交互:

?简单串口程序实现:

serial portx= bps=115200 timex=5 ser=serial.Serial(portx,bps,timeout= result=ser.write(.encode( ( ser.close() (,e)

?获取可用串口列表:

serial port_list = len(port_list) == ( i (port_list[i])

十六进制处理:

serial portx= bps=115200 timex= ser=serial.Serial(portx,timeout= ( result=ser.write(chr(0x06).encode()) ( (ser.read().hex()) ( ser.close() (,e)

?其他细节补充:

serial portx= bps=115200 timex=5 ser=serial.Serial(portx,timeout= ( (ser.port) (ser.baudrate) result=ser.write(.encode()) ( str=ser.read(ser.in_waiting ).decode( (str==): ( ( ser.close() (,e)

部分封装:

其中读数据的封装方法并不是很好用,使用的话又得循环接收,这样反而更加复杂了

serial STRGLO= BOOL=True STRGLO = ser.read(ser.in_waiting).decode( ret= ser = serial.Serial(portx,timeout= ret= threading.Thread(target=ReadData,args= ( BOOL= result = ser.write(text.encode()) str= STRGLO= == ser,ret=DOpenPort(,115200 (ret==True): count=DWritePort(ser, (

?参考:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读