YX5200_uart.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #ifndef __YX5200_UART_H__
  2. #define __YX5200_UART_H__
  3. #include "main.h"
  4. #include "YX5200_MSG.h"
  5. #define bit u8
  6. #define INT8U u8
  7. #define INT16U u16
  8. #define RESEND_MAX 5 //最大重发次数
  9. #define WAIT_ACK_TIME 300 //300ms
  10. /****************************************************************************************************
  11. 参考测试指令
  12. [下一首] 7E 10 06 01 00 00 00 FF E9 EF
  13. [上一首] 7E 10 06 02 00 00 00 FF E8 EF
  14. [指定曲目] 7E 10 06 03 00 00 01 FF E6 EF 指定第一曲
  15. [音量+] 7E 10 06 04 00 00 00 FF E6 EF
  16. [音量-] 7E 10 06 05 00 00 00 FF E5 EF
  17. [指定音量] 7E 10 06 06 00 00 0F FF D5 EF 指定音量为15级
  18. [指定EQ] 7E 10 06 07 00 00 01 FF E2 EF 指定EQ为Pop
  19. [指定播放模式] 7E 10 06 08 00 00 00 FF E2 EF 指定播放模式为循环播放
  20. 7E 10 06 08 00 00 02 FF E0 EF 单曲循环
  21. 7E 10 06 09 00 00 04 FF dd EF SPI模式
  22. [指定播放设备] 7E 10 06 09 00 00 01 FF E0 EF 指定播放设备为UDISK
  23. [进入睡眠模式] 7E 10 06 0A 00 00 00 FF E0 EF
  24. [模块复位] 7E 10 06 0C 00 00 00 FF DE EF
  25. [播放] 7E 10 06 0D 00 00 00 FF DD EF
  26. [暂停] 7E 10 06 0E 00 00 00 FF DC EF
  27. [指定文件夹] 7E 10 06 0F 00 00 02 FF D9 EF 指定名字为"2"的文件夹播放
  28. [查询音量] 7E 10 06 43 00 00 00 FF A7 EF
  29. [查询当前EQ] 7E 10 06 44 00 00 00 FF A6 EF
  30. [查询播放模式] 7E 10 06 45 00 00 00 FF A5 EF
  31. [查询版本] 7E 10 06 46 00 00 00 FF A4 EF
  32. [U TOTAL] 7E 10 06 47 00 00 00 FF A3 EF
  33. [TF TOTAL] 7E 10 06 48 00 00 00 FF A2 EF
  34. [FLASH TOTAL] 7E 10 06 49 00 00 00 FF A1 EF
  35. [STAY] 7E 10 06 4A 00 00 00 FF A0 EF
  36. [U 当前曲目] 7E 10 06 4B 00 00 00 FF 9F EF
  37. [TF 当前曲目] 7E 10 06 4C 00 00 00 FF 9E EF
  38. ****************************************************************************************************/
  39. /*****************************************************************************************************
  40. - 这里用枚举的方式,将所有需要用到的指令列出来
  41. - 有疑惑可以参照具体的模块手册。
  42. - 以下的命名均可以通过翻译明白命令的具体含义
  43. *****************************************************************************************************/
  44. enum
  45. {
  46. UARTCMD_NEXT_FILE = 0x01, //下一曲
  47. UARTCMD_PREV_FILE , //上一曲
  48. UARTCMD_NUM_POINT , //指定曲目(1-2999)
  49. UARTCMD_VOL_UP, //音量+
  50. UARTCMD_VOL_DOWN, //音量-
  51. UARTCMD_VOL_POINT, //指定音量(0-30)
  52. UARTCMD_EQ_POINT, //指定EQ (0/1/2/3/4/5 :Normal/Pop/Rock/Jazz/Classic/Bass)
  53. UARTCMD_LOOP_PLAY, //单曲循环(0-2999)
  54. UARTCMD_PLAYDEVICE, //指定设备(1/2/3/4/5: U/SD/AUX/SLEEP/FLASH)
  55. UARTCMD_SLEEP_MODE, //进入睡眠
  56. NO_UARTCMD = 0X0B, //保留
  57. UARTCMD_RESET, //模块复位
  58. UARTCMD_MUSIC_PLAY, //播放
  59. UARTCMD_MUSIC_PAUSE, //暂停
  60. UARTCMD_MUSIC_FOLDER = 0X0F, //文件播放
  61. UARTCMD_KALA , //扩音设置(无)
  62. UARTCMD_PLAYALL = 0x11 , //全部循环(1/0 =开/关)
  63. UARTCMD_FOLD_MP3_PLAY, //指定 MP3下曲目(0--9999, 0012漂亮.MP3)
  64. UARTCMD_FOLD_ADVERT_PLAY, //插播ADVERT 下广告(0--9999, 0012漂亮.MP3)
  65. UARTCMD_MUSIC_FOLDER2, //文件播放 2,高四位=目录,低12位=文件号
  66. UARTCMD_CONTINUE_PLAY_BACK, //停止插播,播放背景
  67. UARTCMD_STOP, //停止软件解码
  68. UARTCMD_PLAY_FOLD_LOOP, //文件夹内循环(0-99)
  69. UARTCMD_PLAY_RANDOM_ALL, //随机播放(第一个固定的)
  70. UARTCMD_LOOP_ON_OFF, //单曲循环开关(0/1 =开/关)
  71. UARTCMD_DAC_ON_OFF, //开关DAC (0/1 =开/关)
  72. UARTQUR_STAY1 = 0X3C ,
  73. UARTQUR_STAY2 , //
  74. UARTQUR_STAY3 , //
  75. UARTQUR_ERR , //
  76. UARTQUR_STAY5 , //
  77. UARTQUR_ACK = 0X41, //
  78. UARTQUR_STATUS, //
  79. UARTQUR_VOL ,
  80. UARTQUR_EQ ,
  81. UARTQUR_PLAYMODE ,
  82. UARTQUR_VER ,
  83. UARTQUR_UDISK_TOTAL = 0X47,
  84. UARTQUR_TF_TOTAL,
  85. UARTQUR_FLASH_TOTAL,
  86. UARTQUR_STAY6,
  87. UARTQUR_UDISK_FILE,
  88. UARTQUR_TF_FILE,
  89. UARTQUR_FLASH_FILE,
  90. UARTQUR_FILE_NUM = 0X4E, //文件数查询
  91. UARTQUR_FOLD_NUM , //文件夹数查询
  92. } ;
  93. enum
  94. {
  95. UART_RECV_IDLE = 0 , //串口接收空闲模式
  96. UART_RECV_VER ,
  97. UART_RECV_LENTH,
  98. UART_RECV_CMD,
  99. UART_RECV_FEEDBACK ,
  100. UART_RECV_DATAH,
  101. UART_RECV_DATAL,
  102. UART_RECV_CHECKSUMH,
  103. UART_RECV_CHECKSUML,
  104. UART_RECV_OVER,
  105. } ;
  106. extern INT8U Recv_buf[];
  107. /************************************* 模块对外的接口--函数 ***************************************/
  108. void Uart_SendCMD ( INT8U CMD , INT8U feedback , INT16U dat );
  109. void Uart_ReSendCMD ( INT8U CMD , INT8U feedback , INT16U dat );
  110. void Uart_communication ( void );
  111. void YX5200_UART_Handler ( void );
  112. void YX5200_Key_handler ( void );
  113. void Init_YX5200_VOL(void);
  114. #endif