#ifndef _UART_H_ #define _UART_H_ #include "apt32f102.h" #include "apt32f102_uart.h" #define Recv_2400_TimeOut 20 //ms #define Recv_9600_TimeOut 10 //ms #define Recv_115200_TimeOut 3 //ms #define USART_BUFFER_NUM 3 #define USART_BUFFER_SIZE 100 #define UART_SEND_BUFFER_NUM 10 #define UART_SEND_BUFFER_SIZE 20 /*调试信息相关定义*/ #ifndef DBG_LOG_EN #define DBG_LOG_EN 0 //DEBUG LOG 输出总开关 #endif /*调试信息初始状态*/ #define DBG_OPT_Debug_STATUS 0 //临时调试信息打印开关 #define DBG_OPT_DEVICE_STATUS 0 //设备驱动层打印调试信息打印开关 #define DBG_OPT_SYS_STATUS 0 //系统调试信息打印开关 /*调试信息输出控制位*/ #define DBG_BIT_Debug_STATUS 2 #define DBG_BIT_DEVICE_STATUS 1 #define DBG_BIT_SYS_STATUS 0 #if DBG_LOG_EN #define DBG_Printf(data,len) UARTTransmit(UART1,data,len) #else #define DBG_Printf #endif typedef U8_T (*Uart_prt)(U8_T *,U16_T); typedef enum { UART_0, UART_1, UART_2, UART_3, UART_MAX, }UART_IDX; typedef struct{ U8_T RecvBuffer[USART_BUFFER_SIZE]; U8_T DealBuff[USART_BUFFER_SIZE]; U8_T Receiving; U16_T RecvLen; U16_T DealLen; U32_T RecvTimeout; U32_T RecvIdleTiming; Uart_prt processing_cf; //处理函数指针 }UART_t; extern U32_T Dbg_Switch; void UARTx_Init(UART_IDX uart_id, Uart_prt prt_cf); void UART1_RecvINT_Processing(char data); void UART1_TASK(void); void Dbg_NoTick_Println(int DbgOptBit, const char *cmd, ...); void Dbg_Print(int DbgOptBit, const char *cmd, ...); void Dbg_Println(int DbgOptBit, const char *cmd, ...); void Dbg_Print_Buff(int DbgOptBit, const char *cmd, U8_T *buff,U16_T len); #endif