|
#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
|