zoukankan      html  css  js  c++  java
  • python串口调试,M3650B-HA调试

    使用python serial与M3650B-HA(RFID读写器)串口通信

    环境:py3.6 

    模块:pyserial

    1、serial模块安装


    废话不多说,直接上代码,测试环境py3.6

    # coding:utf-8
    __author__='古墓派掌门'
    import binascii
    import serial.tools.list_ports
    import serial
    class Ser(object):
        def __init__(self):
            # 打开端口
            # self.port = serial.Serial(port='COM3', baudrate=9600, bytesize=8, parity='E', stopbits=1, timeout=2)
            plist = list(serial.tools.list_ports.comports())
            if len(plist) <= 0:
                print("没有发现端口!")
            else:
                plist_0 = list(plist[0])
                serialName = plist_0[0]
                self.port = serial.Serial(port=serialName, baudrate=9600)
                print("可用端口名>>>", self.port.name)
        # def show_port(self):
        #     plist = list(serial.tools.list_ports.comports())
        #     if len(plist) <= 0:
        #         print("没有发现端口!")
        #     else:
        #         plist_0 = list(plist[0])
        #         serialName = plist_0[0]
        #         serialFd = serial.Serial(serialName, 9600, timeout=60)
        #         print("可用端口名>>>", serialFd.name)
        # 发送指令的完整流程
        def send_cmd(self, cmd):
            self.port.write(bytearray.fromhex(cmd))
            # print(cmd)
            response = self.port.read(12)
            # response = self.convert_hex(response)
            response=str(response).replace("\x"," ")
            return response
    
        # 转成16进制的函数
        def convert_hex(self, string):
            res = []
            result = []
            for item in string:
                res.append(item)
            for i in res:
                result.append(hex(i))
            return result
    
    
    if __name__=='__main__':
        ser1=Ser()
        while 1:
            # order=input("请输入指令:
    ")
            # print(ser1.send_cmd(order))#02 08 F9 20 00 00 00 2c
            # order='01 08 A1 20 00 00 00 77'.encode('ascii')
            # # ser.write(order)
            # print(order)
            order=input("请输入命令,格式见收据手册
    ")#01 08 A1 20 00 01 00 76
            print(ser1.send_cmd(order))
    

  • 相关阅读:
    福州KTV
    MSN登陆不上:微软谴责中国的“技术问题”
    DB2 存储过程开发最佳实践
    在DB2存储过程中返回一个数据集
    Host is not allowed to connect to this MySQL server 解决方案
    CentOS安装中文支持
    ImportError: libpq.so.5: cannot open shared object file: No such file or directory
    CentOS 终端显示中文异常解决办法
    pytestDemo
    python 获取当前运行的类名函数名
  • 原文地址:https://www.cnblogs.com/qflyue/p/8098384.html
Copyright © 2011-2022 走看看