ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python【串口操作】

2021-09-13 11:02:22  阅读:163  来源: 互联网

标签:ser python time 串口 print 操作 serial _%


import serial
import sys
from time import sleep
import time


TELNET_RETURN = "\n"

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)

标签:ser,python,time,串口,print,操作,serial,_%
来源: https://www.cnblogs.com/amize/p/15261445.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有