| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #ifndef __YX5200_UART_H__
- #define __YX5200_UART_H__
- #include "main.h"
- #include "YX5200_MSG.h"
- #define bit u8
- #define INT8U u8
- #define INT16U u16
- #define RESEND_MAX 5 //最大重发次数
- #define WAIT_ACK_TIME 300 //300ms
- /****************************************************************************************************
- 参考测试指令
- [下一首] 7E 10 06 01 00 00 00 FF E9 EF
- [上一首] 7E 10 06 02 00 00 00 FF E8 EF
- [指定曲目] 7E 10 06 03 00 00 01 FF E6 EF 指定第一曲
- [音量+] 7E 10 06 04 00 00 00 FF E6 EF
- [音量-] 7E 10 06 05 00 00 00 FF E5 EF
- [指定音量] 7E 10 06 06 00 00 0F FF D5 EF 指定音量为15级
- [指定EQ] 7E 10 06 07 00 00 01 FF E2 EF 指定EQ为Pop
- [指定播放模式] 7E 10 06 08 00 00 00 FF E2 EF 指定播放模式为循环播放
- 7E 10 06 08 00 00 02 FF E0 EF 单曲循环
- 7E 10 06 09 00 00 04 FF dd EF SPI模式
- [指定播放设备] 7E 10 06 09 00 00 01 FF E0 EF 指定播放设备为UDISK
- [进入睡眠模式] 7E 10 06 0A 00 00 00 FF E0 EF
- [模块复位] 7E 10 06 0C 00 00 00 FF DE EF
- [播放] 7E 10 06 0D 00 00 00 FF DD EF
- [暂停] 7E 10 06 0E 00 00 00 FF DC EF
- [指定文件夹] 7E 10 06 0F 00 00 02 FF D9 EF 指定名字为"2"的文件夹播放
- [查询音量] 7E 10 06 43 00 00 00 FF A7 EF
- [查询当前EQ] 7E 10 06 44 00 00 00 FF A6 EF
- [查询播放模式] 7E 10 06 45 00 00 00 FF A5 EF
- [查询版本] 7E 10 06 46 00 00 00 FF A4 EF
- [U TOTAL] 7E 10 06 47 00 00 00 FF A3 EF
- [TF TOTAL] 7E 10 06 48 00 00 00 FF A2 EF
- [FLASH TOTAL] 7E 10 06 49 00 00 00 FF A1 EF
- [STAY] 7E 10 06 4A 00 00 00 FF A0 EF
- [U 当前曲目] 7E 10 06 4B 00 00 00 FF 9F EF
- [TF 当前曲目] 7E 10 06 4C 00 00 00 FF 9E EF
- ****************************************************************************************************/
- /*****************************************************************************************************
- - 这里用枚举的方式,将所有需要用到的指令列出来
- - 有疑惑可以参照具体的模块手册。
- - 以下的命名均可以通过翻译明白命令的具体含义
- *****************************************************************************************************/
- enum
- {
- UARTCMD_NEXT_FILE = 0x01, //下一曲
- UARTCMD_PREV_FILE , //上一曲
- UARTCMD_NUM_POINT , //指定曲目(1-2999)
- UARTCMD_VOL_UP, //音量+
- UARTCMD_VOL_DOWN, //音量-
- UARTCMD_VOL_POINT, //指定音量(0-30)
- UARTCMD_EQ_POINT, //指定EQ (0/1/2/3/4/5 :Normal/Pop/Rock/Jazz/Classic/Bass)
- UARTCMD_LOOP_PLAY, //单曲循环(0-2999)
- UARTCMD_PLAYDEVICE, //指定设备(1/2/3/4/5: U/SD/AUX/SLEEP/FLASH)
- UARTCMD_SLEEP_MODE, //进入睡眠
- NO_UARTCMD = 0X0B, //保留
- UARTCMD_RESET, //模块复位
- UARTCMD_MUSIC_PLAY, //播放
- UARTCMD_MUSIC_PAUSE, //暂停
- UARTCMD_MUSIC_FOLDER = 0X0F, //文件播放
- UARTCMD_KALA , //扩音设置(无)
- UARTCMD_PLAYALL = 0x11 , //全部循环(1/0 =开/关)
- UARTCMD_FOLD_MP3_PLAY, //指定 MP3下曲目(0--9999, 0012漂亮.MP3)
- UARTCMD_FOLD_ADVERT_PLAY, //插播ADVERT 下广告(0--9999, 0012漂亮.MP3)
- UARTCMD_MUSIC_FOLDER2, //文件播放 2,高四位=目录,低12位=文件号
- UARTCMD_CONTINUE_PLAY_BACK, //停止插播,播放背景
- UARTCMD_STOP, //停止软件解码
- UARTCMD_PLAY_FOLD_LOOP, //文件夹内循环(0-99)
- UARTCMD_PLAY_RANDOM_ALL, //随机播放(第一个固定的)
- UARTCMD_LOOP_ON_OFF, //单曲循环开关(0/1 =开/关)
- UARTCMD_DAC_ON_OFF, //开关DAC (0/1 =开/关)
- UARTQUR_STAY1 = 0X3C ,
- UARTQUR_STAY2 , //
- UARTQUR_STAY3 , //
- UARTQUR_ERR , //
- UARTQUR_STAY5 , //
- UARTQUR_ACK = 0X41, //
- UARTQUR_STATUS, //
- UARTQUR_VOL ,
- UARTQUR_EQ ,
- UARTQUR_PLAYMODE ,
- UARTQUR_VER ,
- UARTQUR_UDISK_TOTAL = 0X47,
- UARTQUR_TF_TOTAL,
- UARTQUR_FLASH_TOTAL,
- UARTQUR_STAY6,
- UARTQUR_UDISK_FILE,
- UARTQUR_TF_FILE,
- UARTQUR_FLASH_FILE,
- UARTQUR_FILE_NUM = 0X4E, //文件数查询
- UARTQUR_FOLD_NUM , //文件夹数查询
- } ;
- enum
- {
- UART_RECV_IDLE = 0 , //串口接收空闲模式
- UART_RECV_VER ,
- UART_RECV_LENTH,
- UART_RECV_CMD,
- UART_RECV_FEEDBACK ,
- UART_RECV_DATAH,
- UART_RECV_DATAL,
- UART_RECV_CHECKSUMH,
- UART_RECV_CHECKSUML,
- UART_RECV_OVER,
- } ;
- extern INT8U Recv_buf[];
- /************************************* 模块对外的接口--函数 ***************************************/
- void Uart_SendCMD ( INT8U CMD , INT8U feedback , INT16U dat );
- void Uart_ReSendCMD ( INT8U CMD , INT8U feedback , INT16U dat );
- void Uart_communication ( void );
- void YX5200_UART_Handler ( void );
- void YX5200_Key_handler ( void );
- void Init_YX5200_VOL(void);
- #endif
|