zoukankan      html  css  js  c++  java
  • python【串口操作】

    import serial
    import sys
    from time import sleep
    import time
    
    
    TELNET_RETURN = "
    "
    
    try:
      ser = serial.Serial("COM11", 115200,timeout=0, parity=serial.PARITY_NONE,
                            stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
    
    except:
      sys.exit("Error connecting device")
    
    result=ser.write(TELNET_RETURN.encode())#写数据
    
    # 串口要等0.5秒才有ser.inWaiting() > 0
    for _ in range(10):
        print(time.strftime("%Y%m%d_%H_%M_%S", time.localtime()))
        queue = ser.inWaiting()
        if queue > 0:
            print(time.strftime("%Y%m%d_%H_%M_%S", time.localtime()))
            data = ser.read(1000)
            print (data)
        sleep(0.2)
    
    ser.close()
    
    import serial  # 导入模块
    
    try:
        # 端口,GNU / Linux上的/dev/ttyUSB0 等 或 Windows上的 COM3 等
        portx = "COM3"
        # 波特率,标准值之一:50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,19200,38400,57600,115200
        bps = 115200
        # 超时设置,None:永远等待操作,0为立即返回请求结果,其他值为等待超时时间(单位为秒)
        timex = 5
        # 打开串口,并得到串口对象
        ser = serial.Serial(portx, bps, timeout=timex)
        # print("串口详情参数:", ser)
        # print(ser.port)  # 获取到当前打开的串口名
        # print(ser.baudrate)  # 获取波特率
    
        result = ser.write("我是东小东".encode("gbk"))  # 写数据
        print("写总字节数:", result)
    
        # print(ser.read())#读一个字节
        # print(ser.read(10).decode("gbk"))#读十个字节
        # print(ser.readline().decode("gbk"))#读一行
        # print(ser.readlines())#读取多行,返回列表,必须匹配超时(timeout)使用
        # print(ser.in_waiting)#获取输入缓冲区的剩余字节数
        # print(ser.out_waiting)#获取输出缓冲区的字节数
    
        # 循环接收数据,此为死循环,可用线程实现
        while True:
            if ser.in_waiting:
                str = ser.read(ser.in_waiting).decode("gbk")
                if (str == "exit"):  # 退出标志
                    break
                else:
                    print("收到数据:", str)
    
        print("---------------")
        ser.close()  # 关闭串口
    
    
    except Exception as e:
        print("---异常---:", e)
    
    
  • 相关阅读:
    保。,net .
    表格单元格内容超出时显示省略号效果
    延迟加载、异步加载
    requestAnimationFrame,Web中写动画的另一种选择
    淡扯javascript编程思想
    简单粗暴地理解js原型链js面向对象编程
    试试写个随笔吧
    全屏遮罩
    事件绑定
    Metro style Apps 开发第一篇
  • 原文地址:https://www.cnblogs.com/amize/p/15261445.html
Copyright © 2011-2022 走看看