转:神奇的python(六)之python的串⼝操作(pyserial)blog.csdn/ubuntu14/article/details/75335106:python实现串⼝⾃动触发⼯作
简介:最近项⽬突然要使⽤python串⼝操作,这不,查资料,翻⽂档,是时候写⼀份串⼝操作的简要⽤法,
以后有时间可以使⽤pyqt再写个界⾯,弄个串⼝调试终端。
(1) 安装pyserial库
pip install pyserial
(2) pyserial库常⽤函数介绍
serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200,COM1只适⽤于Windows
serial = serial.Serial(‘/dev/ttyS0’, 115200) 打开/dev/ttyS0并设置波特率为115200, 只适⽤于Linux
print serial .portstr 能看到第⼀个串⼝的标识
serial .write(“hello”) 往串⼝⾥⾯写数据
serial .close() 关闭serial 表⽰的串⼝
serial .open() 打开串⼝
data = serial .read(num) 读num个字符
data = serial .readline() 读⼀⾏数据,以/n结束,要是没有/n就⼀直读,阻塞。
serial .baudrate = 9600设置波特率
print serial 可查看当前串⼝的状态信息
serial .isOpen() 当前串⼝是否已经打开
serial.inWaiting() 判断当前接收的数据
serial.flushInput() 清除输⼊缓冲区数据
serial.flushOutput() 中⽌当前输出并清除输出缓冲区数据
---------------------
作者:识荒者
来源:CSDN
原⽂:blog.csdn/absinjun/article/details/81407790
版权声明:本⽂为博主原创⽂章,转载请附上博⽂链接!
(3) 实例: 获取从其他串⼝发送来的数据并回显
#!/usr/bin/python
# coding=UTF-8
import serial
>>>>>>>>>>#
#
# 功能: 将接收到的数据已hex显⽰
# 参数: 串⼝接受到的数据
# 返回: 转换后的数据
#
>>>>>>>>>>#
def hexshow(data):
  hex_data = '' hLen = len(data)
  for i in xrange(hLen):
    hvol = ord(data[i])
    hhex = '%02x' % hvol
    hex_data += hhex+''
 print 'hexshow:', hex_data
>>>>>>>>>>#
#
# 功能: 将需要发送的字符串以hex形式发送
# 参数: 待发送的数据
# 返回: 转换后的数据
#
>>>>>>>>>>#
def hexsend(string_data=''):
  hex_data = string_data.decode("hex")
  return hex_data
if __name__ == '__main__':
  serial = serial.Serial('/dev/ttyS0', 115200)
  print serial
  if serial.isOpen():
    print("open success")
  else:
    print("open failed")
  try:
python怎么读取串口数据    while True:
      count = serial.inWaiting()
      if count > 0:
        data = ad(count)
        if data != b'':
          print("receive:", data)
          serial.write(data)
        else:
          serial.write(hexsend(data))
  except KeyboardInterrupt:
    if serial != None:
      serial.close()
---------------------
作者:识荒者
来源:CSDN
原⽂:blog.csdn/absinjun/article/details/81407790 版权声明:本⽂为博主原创⽂章,转载请附上博⽂链接!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论