zhyinch
2022-03-01 617d989d294c30b5f04f643b1ec7e5d9b4878a1a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 
#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