基于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。

原文地址:https://www.cnblogs.com/legion/p/7366194.html