树莓派4B学习笔记24:Python_SYN6288语音模块的控制函数

server/2024/10/18 14:23:19/

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)

 本人所用树莓派4B 装载的系统与版本如下:

 版本可用命令 (lsb_release -a) 查询:

 Opencv 版本是4.5.1:

 Python 版本3.7.3:

今日学习SYN6288语音模块的控制,主要是Python实现部分,就懒得接树莓派测试了......

文章提供测试代码讲解,整体代码贴出、测试效果图

目录

代码编程:

测试效果:

网上查阅资料网址贴出:


代码编程:

没啥需要解释的,这个def BuildPacket(gb2312_str1):需要传入一个编码为 GB2312的字节串参数gb2312_str1 ,然后会return 返回你需要发送的数据包,定义一个变量进行承接就行了~

# coding: utf-8
import time# 假设有一个GB2312编码的字符串
gb2312_str1 = "宇音天下".encode('gb2312')  # 编码为GB2312的字节串
#命令字,命令参数
commandWord = 0x01
commandParam = 0x00# 定义组合数据包的函数,这个直接返回发送的数据包
def BuildPacket(gb2312_str1):# 第一个元素是0xfdpacket = [bytes([0xfd])]# 这里不需要将字节串转换为十六进制字符串数组# 直接使用gb2312_str1即可,因为它已经是字节串了# 计算数据区长度(不包括校验和)data_length = len(gb2312_str1)  # 数据区长度是GB2312字节串的长度total_length = 1 + 1 + data_length + 1  # 0xfd + 2字节长度 + 1字节commandWord + 1字节commandParam + 数据长度 + 1字节校验data_length_bytes = total_length.to_bytes(2, 'big')  # 长度转换为大端序字节串packet.append(data_length_bytes)# 添加命令字和命令参数packet.append(bytes([commandWord]))packet.append(bytes([commandParam]))# 添加数据区packet.append(gb2312_str1)# 初始化异或校验和xor_checksum = 0x00# 对所有数据进行异或校验(除了校验和本身)for part in packet:for byte in part:xor_checksum ^= byte# 将校验和添加到数据包末尾(作为单独的字节)packet.append(bytes([xor_checksum]))#注意:packet现在是一个列表,包含bytes对象。要发送它,你需要将其合并为一个bytes对象# 或者,如果你想要发送的是列表中的每个bytes对象,你可能需要遍历它或使用b''.join()full_packet = b''.join(packet)# 打印完整的数据包(以十六进制形式)print(full_packet.hex())return full_packet
def main():packet=BuildPacket(gb2312_str1)if __name__ == '__main__':main()

测试效果:

方便起见,我并未连接树莓派串口进行测试,但其返回的数据包打印是对的,

这部分的测试有 参考文章:

STM32 使用SYN6288语音模块-CSDN博客

网上查阅资料网址贴出:

C#学习笔记14:SYN6288语音模块_Winform上位机控制软件-CSDN博客


http://www.ppmy.cn/server/96404.html

相关文章

重生之我 学习【数据结构之顺序表(SeqList)】

⭐⭐⭐ 新老博友们,感谢各位的阅读观看 期末考试&假期调整暂时的停更了两个多月 没有写博客为大家分享优质内容 还容各位博友多多的理解 美丽的八月重生之我归来 继续为大家分享内容 你我共同加油 一起努力 ⭐⭐⭐ 数据结构将以顺序表、链表、栈区、队列、二叉树…

Kotlin 委托:深入理解与实际应用

Kotlin 委托:深入理解与实际应用 引言 Kotlin,作为一门现代编程语言,以其简洁、表达性强和类型安全等特点,受到了越来越多开发者的喜爱。在 Kotlin 中,委托是一种强大的语言特性,它允许我们将某些操作委托给另一个对象来处理。这种设计模式不仅提高了代码的可读性和可维…

【弱监督时间动作定位】ACGNet: Action Complement Graph Network for WSTAL 论文阅读

ACGNet: Action Complement Graph Network for Weakly-supervised Temporal Action Localization 论文阅读 AbstractIntroductionRelated WorkAction Complement Graph NetworkMethod OverviewAction Complement GraphGraph InferenceTraining Objective ExperimentsConclusion…

100道C/C++面试题

1. static的作用2. 引用与指针的区别3. .h头文件中的ifndef/define/endif 的作用4 #include<file.h>与#include"file.h"的区别?5 描述实时系统的基本特性6 全局变量和局部变量在内存中是否有区别?如果有&#xff0c;是什么区别?7 什么是平衡二叉树?8 堆栈溢…

CompletableFuture详解

CompletableFuture详解 学习链接:https://juejin.cn/post/7124124854747398175?searchId20240806151438B643DF2AAD2FC5E6F11E 一、CompletableFuture简介 在JAVA8开始引入了全新的CompletableFuture类&#xff0c;它是Future接口的一个实现类。也就是在Future接口的基础上&a…

Python实现深度森林(Deep Forest)回归模型(deepforest回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 随着大数据和人工智能技术的发展&#xff0c;机器学习已成为解决各种复杂问题的强大工具。在众多机器学…

springboot+vue+mybatis汽车租赁管理+PPT+论文+讲解+售后

汽车租赁系统是针对目前汽车租赁管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的汽车租赁管理系统存在的问题进行分析&#xff0c;完善客户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率高&…

数据库的管理

1、官网下载或者wget tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、确定mysql-community-server正常安装之后就可以开始配置 3、初始化mysqld 服务 mysqld initeialize 4、启动服务 systemctl start mysqld 5、添加开机启动列表 systecmctrl enable mysqld在/var…