概述
UART 串口模式 是采用波特率为
9600
的全双工串口通信。
- 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制。
- 从机不会主动发起通信,所有通信都是由主机发起。
串口模式接线图:
使用串口可以存放65535首曲目(需要注意模块只有4m内存),通过通信指令可以实现多种模式播放,具体如下:
控制指令 :
设置指令 :
查询指令 :
【
指令太多,就不全部介绍了,本文只使用指定播放功能:
AA 07 02 这前三位是固定的,不用管;
后三位分别是 曲目高8位 曲目低8位 SM。
其中高8位和低8位刚好组成16进制,如0xFFFF刚好对应65535。
SM是和检验,代表前面几个数据的和。
】
介绍完毕(细节操作过程请看第一章)
代码部分:
#include <REGX52.H>
typedef unsigned char u8;
u8 Music_Cmd_Appoint[] = {0xAA,0x07,0x02,0x00,0x00,0x00}; //播放指定曲目初始化数组
//AA 07 02 曲目高8位 曲目低8位 SM(和检验,前面所有字节之和)
void UartInit(void) //9600波特率 @11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0xFD; //设置定时初始值
TH1 = 0xFD; //设置定时重载值
ET1 = 0; //禁止定时器%d中断
TR1 = 1; //定时器1开始计时
}
void UartSendByte(u8 C) //串口数据发送
{
SBUF = C;
while(!TI); //等待发送完成
TI = 0; //软件置0
}
/*
说明:播放指定曲目
参数1:数组
参数2:播放第x首曲目
*/
void USART_MUSIC(u8 *mdate, u8 num)
{
u8 i;
mdate[4] = num; //写入播放曲目
mdate[5] = 0;
for(i=0; i<5; i++) //SM 把前面 数组0~4 总共5个数加起来
{
mdate[5] += mdate[i];
}
for(i=0; i<6; i++) //把修改后的曲目发送出去(每次发送一个数据,分6次发送完)
{
UartSendByte(mdate[i]);
}
}
void main() //主程序
{
UartInit(); //串口初始化
USART_MUSIC(Music_Cmd_Appoint, 2); //指定播放第二首
while(1)
{
}
}
//完。
相关资料:
DY-SV17F语音播放模块应用篇一 【IO独立模式】_啊维的博客-CSDN博客
最后
以上就是含糊鸭子为你收集整理的DY-SV17F语音播放模块应用篇二 【UART 串口模式】的全部内容,希望文章能够帮你解决DY-SV17F语音播放模块应用篇二 【UART 串口模式】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复