zoukankan      html  css  js  c++  java
  • 基于RCT6的YX6100语音模块方案

    指令格式:

    $S ,VER ,LEN,CMD,FEEDBACK,DATA,CheckSum,$0

    $S起始,7E

    VER,版本,FF

    LEN,长度,从VER算到DATA

    FEEDBACK :0

    $0:结束 :EF

    校验和的算法(相加取反再加1)

    比如命令[7E FF 06 3F 00 00 00 FE BC EF]

    FF一直到 00 这6个数,相加得到0x0144,取反=0xFEBB ,最后再加1,得到0xFEBC

    Python代码

    data=[0xFF,0x06,0x3F,00,00,00,]
    sum=0;
    for i in data:
        sum+=i;
    sum=0xFFFF-sum;
    sum+=1
    print("%X" %sum)

    C代码

    void DoSum( INT8U *Str, INT8U len)
    {
    INT16U xorsum = 0;
    INT8U i;
    for(i=0; i<len; i++)
    {
    xorsum = xorsum + Str[i];
    }
    xorsum = 0 -xorsum;
    *(Str+i) = (INT8U)(xorsum >>8);//得到高字节 
    *(Str+i+1) = (INT8U)(xorsum & 0x00ff);//得到低字节
    }

    播放的命令

    比如播放第一首

    7E FF 06 03 00 00 01 FE F7 EF

    01 表示第一首

    调节音量7E FF 06 06 00 00 14 FE E1 EF

     0x14等于 20

    最高音量为30。

  • 相关阅读:
    IDEA下同时使用Git和svn
    IDEA进行activiti-archetype-unittest脚手架的安装
    正则表达式
    关于JS堆栈与拷贝
    按值传递--
    JS---变量、作用域和内存问题
    laod
    待解决
    闭包2
    闭包1
  • 原文地址:https://www.cnblogs.com/legion/p/7366194.html
Copyright © 2011-2022 走看看