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")

欢迎留言

相关推荐
A__tao4 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢4 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
迷藏4944 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨5 小时前
python扫码登录dy
开发语言·python
bazhange5 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
人工干智能5 小时前
科普:python中你写的模块找不到了——`ModuleNotFoundError`
服务器·python
unicrom_深圳市由你创科技5 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
小敬爱吃饭5 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
宸津-代码粉碎机5 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python
知行合一。。。6 小时前
Python--04--数据容器(集合)
python