#ifndef __KT_H__ #define __KT_H__ #include "system/includes.h" #define KT_UART_RX_BUF_SIZE 512 #define KT_UART_BAUDRATE 115200 #define KT_UART_TX_PORT IO_PORTB_06 #define KT_UART_RX_PORT IO_PORTB_07 #define KT_BUSY_PORT IO_PORTA_04 #define PA_MUTE() (gpio_set_output_value(IO_PORTA_04,1)) #define PA_UNMUTE() (gpio_set_output_value(IO_PORTA_04,0)) typedef struct { u32 leng; u8 buf[KT_UART_RX_BUF_SIZE]; }tRxPacket; #define KT_OK 0 /* 指令正确,数据正确,且执行正确 */ #define KT_ERROR 1 /* 一个通用的错误,可能是一个未定义的错误 */ #define KT_ERR_UNCMD 2 /* 未识别的指令 */ #define KT_ERR_PARA 3 /* 参数错误 */ #define KT_ERR_PACK 4 /* 帧错误,此包数据未找到帧头,或者未找到帧尾 */ #define KT_ERR_LENGTH 5 /* 长度错误 */ #define KT_ERR_XOR 6 /* 校验错误 */ #define KT_CMD_PLAY 0xA0 #define KT_CMD_PAUSE 0xA1 #define KT_CMD_PP 0xA2 #define KT_CMD_NEXT 0xA3 #define KT_CMD_PREV 0xA4 #define KT_CMD_STOP 0xA5 #define KT_CMD_VOL_UP 0xA6 #define KT_CMD_VOL_DOWN 0xA7 #define KT_CMD_VOL_SET 0xA8 #define KT_CMD_VOL_MUTE 0xA9 #define KT_CMD_VOL_UNMUTE 0xAA #define KT_CMD_CYCLE 0xAE #define KT_CMD_PLAY_NAME 0xAB #define KT_CMD_PLAY_FULL_NAME 0xAC #define KT_CMD_PLAY_NUM 0xAD #define KT_CMD_GET_FILE_NUM 0xB0 #define KT_CMD_GET_DIR_NUM 0xB1 #define KT_CMD_GET_DIR_FILE_NUM 0xB2 #define KT_CMD_GET_PLAY_TOTAL_TIME 0xB3 #define KT_CMD_GET_PLAY_CUR_TIME 0xB4 void kt_uart_init(void); void kt_uart_event(void); void kt_init(void); void kt_change_cycle(u8 cycle); u8 kt_get_cycle(void); void kt_set_last_play(u8 mode, u8 num, char *name); void kt_get_last_play(u8 *mode, u8 *num, char *name); #endif