KT25-0812_82A-UART/apps/kaotings/kt.h
2025-08-28 00:29:07 +08:00

67 lines
1.9 KiB
C

#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