python 实现串口指令通讯

上一篇文章文章写了串口数据的读取,这篇文章讲串口数据的写入(指令控制)

与下位机通信往往需要十六进制形式进行数据通信,根据设备串口通信指令文档进行指令通信,本篇以灯光控制为例:

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

2.实例

import serial
import time

if __name__ == '__main__':
    #指令含义
    addr_light = [0xFF, 0x09, 0x00, 0x11, 0x00] 
    green_always_on = [0x12, 0x7C, 0x25]  # 绿灯常量
    light_off = [0x61, 0x3D, 0xC0]  # 警灯关闭

    try:
        #串口连接
        light_ser = serial.Serial(port='COM9', baudrate=9600, timeout=0.5)
        if light_ser.isOpen():  # 判断端口是否被打开
            print('lighting {0} is connect'.format(light_ser.name))

            #发送绿灯指令
            light_ser.write(addr_light + green_always_on)
            #读取返回数据 
            data = light_ser.readline() 
            print(data.hex().upper())   #二进制转十六进制,大写
            time.sleep(5)
            #发送关闭指令
            light_ser.write(addr_light + light_off)
            
        else:
            print("can not connect serial")

        # 关闭串口
        serial.Serial.close(light_ser)

    except Exception:
        print("error")

欢迎留言

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值