学习python语言很久,第一次用于实际工作需要,记录一下:

  1. pyserial模块封装了对串口的访问,安装:pip insatll pyserial

  2. 对象属性
    name:设备名字;
    port:读或者写端口;
    baudrate:波特率;
    rfidr_ser = serial.Serial(port=‘COM4’, baudrate=57600, timeout=0.5) 串口初始化;

  3. 对象方法
    ser.isOpen():查看端口是否被打开。
    ser.open() :打开端口‘。
    ser.close():关闭端口。
    ser.read(N):从端口读N字节数据。
    ser.read_all():从端口接收全部数据。
    ser.readline():读一行数据。

  4. 实例参考

import serial
import time

if __name__ == '__main__':

    # port = '8888'
    # pub_server_name = 'bd_rfid'
    # topic = 'BD-RFID-PUB'

   try:

        rfidr_ser = serial.Serial(port='COM4', baudrate=57600, timeout=0.5)
        #print(rfidr_ser.portstr)
        print(rfidr_ser.name)  #输出串口名称

        if rfidr_ser.isOpen():   #判断端口是否被打开+
            print('rfid is connect')

            while True:
                count = rfidr_ser.inWaiting()  # 获取串口缓存区数据,返回接收字符串的长度值
                if count != 0:
                    #recv = rfidr_ser.readlines()
                    # recv = rfidr_ser.readall()
                    recv = rfidr_ser.read(count)    # 读取串口数据
                    #print(recv)
                   # print(recv.hex(), type(str(recv)))  #bytes 转十六进制

                    for item in recv:
                        hex_str =' '
                        hex_str += str(hex(item))[2:].zfill(2).upper()  #分割字符串,并且大写
                        print(hex_str,end=" ")   #以空格结束,避免换行
                        
                time.sleep(0.1)  # 延时0.1秒

        serial.Serial.close()
   except Exception:
       print('can not connect rfid')

参考链接:
https://www.jb51/article/170801.htm

如果发现任何问题,欢迎留言指教。三克油~~

更多推荐

python 实现RFID串口数据读取