当前位置:   article > 正文

串口通信使用(python实现)_python调用串口通信

python调用串口通信

python内置的库函数很多,其中就包括串口通信的库-----serial。

一:导入serial模块

import serial

二:linux平台对串口进行配置(常用的几个)

ser = serial.Serial("/dev/ttyS1", 2400, timeout=5)   #插入传感器自动识别设备,并设置波特率

ser = serial.Serial("/dev/ttyUSB0",9600,timeout=5)#识别到usb转串口设备,设备波特率为9600

三:常用方法

ser.isOpen():查看端口是否被打开。
ser.open() :打开端口‘。
ser.close():关闭端口。
ser.read():从端口读字节数据。默认1个字节。
ser.read_all():从端口接收全部数据。
ser.write("hello"):向端口写数据。
ser.readline():读一行数据。
ser.readlines():读多行数据。
in_waiting():返回接收缓存中的字节数。
flush():等待所有数据写出。
flushInput():丢弃接收缓存中的所有数据。
flushOutput():终止当前写操作,并丢弃发送缓存中的数据。

四:常用的通信转换

1.将十进制列表转十六进制字符串

  1. da = [12,14,25,34]
  2. def to_hexstring(data):
  3. result = ''
  4. for i in data:
  5. tmp = hex(i)[2:].upper()
  6. if len(tmp) == 1:
  7. result += str(0) + str(tmp) + ' '
  8. else:
  9. resule += str(tmp) + ' '
  10. return result
  11. print(to_hexstring(da))

2.接收来自传感器的数据(数据帧,字节),并转换成十进制。

  1. def input(byte):
  2. rev_list = []
  3. try:
  4. for i in range(byte):
  5. rev = ser.read(1)
  6. rev = int.from_bytes(rev, byteorder = sys.byteorder)
  7. rev_list.append(rev)
  8. except:
  9. rev_list = [0x88]
  10. return rev_list

3.将十六进制字符串转换成字节流。

  1. def output(data):
  2. rev = to_hexstring(data)
  3. ser.write(bytes.fromhex(rev))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/211152
推荐阅读
相关标签
  

闽ICP备14008679号