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