使用串口工具发送和捕获串口信息

使用串口工具发送和捕获串口信息

以下为使用串口工具对串口设备进行设备通讯的基本程序
请添加图片描述

1、使用常见的串口板插入电脑USB后找到USB的端口号
2、修改代码的串口端口号同时修改串口波特率
3、发送数据或者接收数据

# encoding=utf-8
import time
import serial


# 串口打开函数
def open_ser():
    port = 'com20'  # 串口端口号
    baudrate = 460800  # 波特率
    try:
        global ser  # 新建serial对象
        ser = serial.Serial(port, baudrate, timeout=2)  # 初始化串口
        if (ser.isOpen() == True):  # 判断是否打开
            print("串口打开成功")
    except Exception as exc:
        print("串口打开异常", exc)


# hex数据发送
def hex_send_msg(hex_data):
    try:
        print(hex_data, type(hex_data))
        ser.write(bytes.fromhex(hex_data))
    except Exception as exc:
        print("发送异常", exc)


# asc数据发送
def asc_send_msg(asc_data):
    try:
        send_datas1 = asc_data + '\r\n'  # 加换行
        ser.write(str(send_datas1).encode("gbk"))  # 向串口写数据  gbk编码
        print("已发送数据:", send_datas1)
    except Exception as exc:
        print("发送异常", exc)

def read_msg1():
    try:
        print("等待接收数据")
        while True:
            data = ser.readline().hex()  # 等待判断是否有数据
            if data != '' and data != b'':  # 数据不为空
                break
        print("已接收到数据:", data)
        return data  # 返回数据
    except Exception as exc:
        print("读取异常", exc)

# 接收数据
def read_msg2():
    try:
        print("等待接收数据")
        while True:
            data = ser.read(ser.in_waiting).decode('gbk')  # 等待判断是否有数据
            if data != '':  # 数据不为空
                break
        print("已接受到数据:", data)
        return data  # 返回数据
    except Exception as exc:
        print("读取异常", exc)


# 关闭串口
def close_ser():
    try:
        ser.close()  # 关闭serial
        if ser.isOpen():  # 判断关闭了没有
            print("串口未关闭")
        else:
            print("串口已关闭")
    except Exception as exc:
        print("串口关闭异常", exc)

"""
if __name__ == '__main__':
    open_ser()  # 打开串口
    # while 1:
    #     redata = read_msg()  # 读数据
    #     # send_msg(redata)  # 写数据
    # close_ser()  # 关闭串口
    # hex_send_msg('EFEFEF080099FF040200010006FEFEFE')
    # time.sleep(0.05)
    # asc_send_msg('Hello, Serial!')

"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值