zhyinch
2022-02-17 af4710835316cb2fd8dd70db7867e23147206f31
Ô´Âë/ºËÐİå/Src/OnChipDevices/Usart.h
@@ -3,16 +3,102 @@
#define __USART_H__
#include "stm32f10x.h"
//#define BAUDRATE_19200
#define USART_TX_pin         GPIO_Pin_9
#define USART_RX_pin         GPIO_Pin_10
#define USART_GPIO            GPIOA
#define EXT_USART            USART1
#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 BAUD_RATE            115200
//#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
void Usart_Init(void);
#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