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

今日继续学习树莓派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):
    # 第一个元素是0xfd
    packet = [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博客

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值