#ifndef __USART_H__ #define __USART_H__ #include "stm32f10x.h" //#define BAUDRATE_19200 #define EU_485_PIN GPIO_Pin_7 #define EU_485_GPIO GPIOB #define OUT485_ENABLE GPIO_WriteBit(EU_485_GPIO, EU_485_PIN, Bit_SET); #define OUT485_DISABLE GPIO_WriteBit(EU_485_GPIO, EU_485_PIN, Bit_RESET); //#define UART_GPIO_REMAP_ENABLE #ifdef UART_GPIO_REMAP_ENABLE #define UART_GPIO_REMAP GPIO_Remap_USART1 #define EU_RCC_GPIO RCC_APB2Periph_GPIOB #define EU_TX_PIN GPIO_Pin_6 #define EU_RX_PIN GPIO_Pin_7 #define EU_RX_GPIO GPIOB #define EU_TX_GPIO GPIOB #else #define EU_RCC_GPIO RCC_APB2Periph_GPIOA #define EU_TX_PIN GPIO_Pin_9 #define EU_RX_PIN GPIO_Pin_10 #define EU_RX_GPIO GPIOA #define EU_TX_GPIO GPIOA #endif #ifdef BAUDRATE_19200 #define EXUART_BAUD_RADE 19200 #else #define EXUART_BAUD_RADE 115200 #endif #define EUART_RX_DMA_CH DMA1_Channel5 #define EUART_TX_DMA_CH DMA1_Channel4 #define EUART_TX_FRM_SIZE 14 //·¢ËͶÓÁÐÖеÄ×î´óÖ¡Êý #define EUART_TX_FRMBUF_SIZE 200 //·¢ËÍ ¶ÓÁÐÿ֡»º´æ´óС #define EUART_RX_BUF_SIZE 200 //½ÓÊÕ»º´æ´óС #define EXT_UART USART1 #define EXT_UART_RCC RCC_APB2Periph_USART1 typedef struct _EUART_Frame { //Êý¾Ý·¢ËÍÖ¡¶ÓÁнṹÌå int32_t len; //Ö¡³¤¶È uint8_t buf[EUART_TX_FRMBUF_SIZE]; //Ö¡Êý¾Ý } EUART_Frame; void Uart1_Init(void); void UART_CheckReceive(void); void UART_CheckSend(void); void UART_PushFrame(uint8_t* pdata, int32_t data_len); void UART_PopFrame(void); extern void (*Usart1ParseDataCallback)(uint8_t); extern u8 cmd_mode; #define HIDO_VOID void typedef unsigned char HIDO_UINT8; /* ǰ׺u8 */ typedef unsigned short HIDO_UINT16; /* ǰ׺u16 */ typedef unsigned int HIDO_UINT32; /* ǰ׺u32 */ typedef unsigned long long HIDO_UINT64; /* ǰ׺u64 */ typedef signed char HIDO_INT8; /* ǰ׺i8 */ typedef signed short HIDO_INT16; /* ǰ׺i16 */ typedef signed int HIDO_INT32; /* ǰ׺i32 */ typedef signed long long HIDO_INT64; /* ǰ׺i64 */ typedef char HIDO_CHAR; /* ǰ׺c */ typedef float HIDO_FLOAT; /* ǰ׺f */ typedef double HIDO_DOUBLE; /* ǰ׺d */ typedef struct { HIDO_VOID *m_pData; HIDO_UINT32 m_u32Len; }HIDO_DataStruct; typedef enum { GPS_STATE_INVALID = 0, GPS_STATE_VALID, } E_GPSState; typedef enum { HIDO_FALSE, HIDO_TRUE } HIDO_BOOL; /* ǰ׺b */ typedef HIDO_INT32 *INT32_PTR; typedef HIDO_UINT32 *UINT32_PTR; typedef HIDO_DataStruct *DATA_PTR; typedef HIDO_UINT8 **U8_PTR_PTR; typedef struct { HIDO_UINT16 m_u16Speed; HIDO_UINT16 m_u16Dir; //direction HIDO_DOUBLE m_dLat; //latitude HIDO_DOUBLE m_dLon; //longitude E_GPSState m_eState; HIDO_UINT16 m_u16Year; HIDO_UINT8 m_u8Mon; //month HIDO_UINT8 m_u8Day; HIDO_UINT8 m_u8Hour; HIDO_UINT8 m_u8Min; //minute HIDO_UINT8 m_u8Sec; //second }ST_GPS; HIDO_UINT32 HIDO_UtilParseFormat(HIDO_UINT8 *_pu8Src, HIDO_UINT32 _u32SrcLen, const HIDO_CHAR *_pcFmt, ...); #define HIDO_OK 0 /* Õý³£·µ»Ø */ #define HIDO_ERR -1 /* ³ö´í·µ»Ø,ûÓÐÃ÷È·¾ßÌå³ö´íÔ­ÒòµÄ·µ»Ø */ #endif