|
發布時間: 2016-8-31 21:51
正文摘要:最近在學UART串口通信。我想通過51單片機通過二線串口通訊控制音樂播放器模塊。 [size=14.1666660308838px]選用的是JQ8400模塊。 通過下載在單片機的程序,然后通過二線串口控制語音模塊。程序如下(然而并 ... |
|
#include "JQ8900CMD.h" uint8_t code Cmd_02[] = {0xAA, 0x0B, 0x01, 0x01, 0xB7}; //從SD卡播放 uint8_t code Cmd_03[] = {0xAA, 0x0B, 0x01, 0x02, 0xB8}; //從FLASH播放 uint8_t code Cmd_QMUp[] = {0xAA, 0x05, 0x00, 0xAF}; //上一曲指令 uint8_t code Cmd_QMDow[] = {0xAA, 0x06, 0x00, 0xB0}; //下一曲指令 uint8_t code Cmd_Run[] = {0xAA, 0x02, 0x00, 0xAC}; //播放指令 uint8_t code Cmd_Stop[] = {0xAA, 0x04, 0x00, 0xAE}; //停止指令 uint8_t code Cmd_VoltUp[] = {0xAA, 0x14, 0x00, 0xBE}; //音量加 uint8_t code Cmd_VoltDow[] = {0xAA, 0x15, 0x00, 0xBF}; //音量減 uint8_t code Cmd_SJ[] = {0xAA, 0x18, 0x01, 0x05, 0xC8}; //目錄隨機播放 uint8_t code Cmd_FLASH[] = {0xAA, 0x08, 0x02, 0x02, 0x2F, 0xE5}; //FLASH 根目錄 uint8_t code Cmd_SD[] = {0xAA, 0x08, 0x02, 0x01, 0x2F, 0xE4}; //SD 根目錄 static uint8_t CmdData[20]; //控制指令緩沖 //==================================================================================// // @ 函數名稱:JQ8900_SetVolt // @ 功能說明:設置播放音量,0~30級 //==================================================================================// void JQ8900_SetVolt( uint8_t volt ) { if (volt>30) volt = 30; CmdData[0] = 0xAA; CmdData[1] = 0x13; CmdData[2] = 0x01; CmdData[3] = volt; CmdData[4] = CmdData[0]+CmdData[1]+CmdData[2]+CmdData[3]; USART_SendDatas(CmdData,5); } //==================================================================================// // @ 函數名稱:JQ8900_SetQM // @ 功能說明:設置曲目 //==================================================================================// void JQ8900_SetQM( uint8_t volt ) { // if (volt>30) volt = 30; CmdData[0] = 0xAA; CmdData[1] = 0x07; CmdData[2] = 0x02; CmdData[3] = 0x00; CmdData[4] = volt; CmdData[5] = CmdData[0]+CmdData[1]+CmdData[2]+CmdData[3]+CmdData[4]; USART_SendDatas(CmdData,6); } //==================================================================================// // @ 函數名稱:JQ8900_QMUp // @ 功能說明:上一曲 //==================================================================================// void JQ8900_QMUp( void ) { USART_SendDatas(Cmd_QMUp,4); } //==================================================================================// // @ 函數名稱:JQ8900_QMDow // @ 功能說明:下一曲 //==================================================================================// void JQ8900_QMDow( void ) { USART_SendDatas(Cmd_QMDow,4); } //==================================================================================// // @ 函數名稱:JQ8900_Run // @ 功能說明:播放 //==================================================================================// void JQ8900_Run( void ) { USART_SendDatas(Cmd_Run,4); } //==================================================================================// // @ 函數名稱:JQ8900_Stop // @ 功能說明:暫停 //==================================================================================// void JQ8900_Stop( void ) { USART_SendDatas(Cmd_Stop,4); } //==================================================================================// // @ 函數名稱:JQ8900_VoltUp // @ 功能說明:音量加 //==================================================================================// void JQ8900_VoltUp( void ) { USART_SendDatas(Cmd_VoltUp,4); } //==================================================================================// // @ 函數名稱:JQ8900_VoltDow // @ 功能說明:音量減 //==================================================================================// void JQ8900_VoltDow( void ) { USART_SendDatas(Cmd_VoltDow,4); } //==================================================================================// // @ 函數名稱:JQ8900_FlashFileCBQM // @ 功能說明:插播FLASH指定目錄 文件字母開頭01~99 //==================================================================================// void JQ8900_FlashFileCBQM( uint8_t Data ) { uint8_t Temp1 = Data%100/10 + 0x30; uint8_t Temp2 = Data%10 + 0x30; CmdData[0] = 0xAA; CmdData[1] = 0x17; CmdData[2] = 0x0E; CmdData[3] = 0x02; CmdData[4] = 0x2F; CmdData[5] = 0xCF; CmdData[6] = 0xB5; CmdData[7] = 0xCD; CmdData[8] = 0xB3; CmdData[9] = 0x2A; CmdData[10] = 0x2F; CmdData[11] = Temp1; CmdData[12] = Temp2; CmdData[13] = 0x2A; CmdData[14] = 0x3F; CmdData[15] = 0x3F; CmdData[16] = 0x3F; CmdData[17] = CmdData[0]+CmdData[1]+CmdData[2]+CmdData[3]+CmdData[4]+CmdData[5] \ +CmdData[6]+CmdData[7]+CmdData[8]+CmdData[9]+CmdData[10]+CmdData[11] \ +CmdData[12]+CmdData[13]+CmdData[14]+CmdData[15]+CmdData[16]; USART_SendDatas(CmdData,18); } //==================================================================================// // @ 函數名稱:JQ8900_ForSDSJBF // @ 功能說明:從SD隨機播放 //==================================================================================// void JQ8900_ForSDSJBF( uint8_t Qm ) { USART_SendDatas(Cmd_02,5); //設置為SD卡磁盤 USART_SendDatas(Cmd_SD,6); //選擇SD根目錄 JQ8900_SetQM(Qm); //設置曲目1 USART_SendDatas(Cmd_SJ,5); //目錄隨機播放 } //==================================================================================// // @ 函數名稱:JQ8900_ForFlashSJBF // @ 功能說明:從FLASH隨機播放 //==================================================================================// void JQ8900_ForFlashSJBF( uint8_t Qm ) { USART_SendDatas(Cmd_03,5); //設置為FLASH磁盤 USART_SendDatas(Cmd_FLASH,6); //選擇FLASH根目錄 JQ8900_SetQM(Qm); //設置曲目1 USART_SendDatas(Cmd_SJ,5); //目錄隨機播放 } |
| 請問您有單片機串口控制語音模塊播放的完整程序嗎 |
| 你好,可以問一下你以前做的單片機控制語音模塊最終怎么樣了 |
1025263254 發表于 2016-9-22 22:10 上位機怎么和語音模塊連線 |
| 沒有看懂 |
admin 發表于 2016-9-4 15:26 不是啊 啊。我用電腦上位機跟模塊可以通訊,但是下載程序到單片機,讓單片機控制語音模塊,現在程序還沒寫好, |
| 這個很好,是贈送版? |