| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #ifndef __BSP_H
- #define __BSP_H
- #include "includes.h"
- #define GD32F10X_ID_ADDR 0x1FFFF7E8
- #define GD32F30X_ID_ADDR 0x1FFFF7E8
- extern uint32_t mcuID[3];
- void cpuidGetId(void);
- #define WATCHDOG_RESET_MAX_TIMES 5
- typedef struct _sys_eeprom_info {
- uint32_t DevType;
- uint32_t DevId;
- uint32_t NewVerFlag; //0: normal; 1: update, has new version.
- uint32_t WdgRestCnt;
- uint32_t SftRestCnt;
- uint32_t PorRestCnt;
- uint32_t APP1Ver;
- uint32_t APP2Ver;
- uint32_t APP3Ver;
- } sys_eeprom_info_t;
- /**********************************************/
- typedef enum AIR_STATE_ENUM {
- air_state_rcv,
- air_state_send
- } AIR_STATE_ENUM;
- extern uint8_t air_state;
- //extern uint8_t lora_rcv[128];
- extern uint8_t lora_flag;
- extern uint16_t lora_rcv_len;
- /**********************************************/
- #define GATEWAY_ALRD 01
- #define GATEWAY_INFO_ADDR 0x300
- //#define RS485_RX() {GPIO_ResetBits(GPIOB, GPIO_Pin_9);}
- //#define RS485_TX() {GPIO_SetBits(GPIOB, GPIO_Pin_9);}
- #define RS485_RX() {GPIO_ResetBits(GPIOA, GPIO_Pin_1);}
- #define RS485_TX() {GPIO_SetBits(GPIOA, GPIO_Pin_1);}
- #define LED_RUN_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_2);}
- #define LED_RUN_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_2);}
- #define LED_MOD_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_1);}
- #define LED_MOD_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_1);}
- #define LED_RUN PCout(2)
- #define LED_MOD PCout(1)
- #define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12)//读取按键0
- #define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_13)//读取按键1
- #define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_14)//读取按键2
- #define KEY0_PRES 1 //KEY0按下
- #define KEY1_PRES 2 //KEY1按下
- #define KEY2_PRES 3 //KEY2按下
- #define WKUP_PRES 4 //KEY_UP按下(即WK_UP/KEY_UP)
- #define USIM0_H() {GPIO_SetBits(GPIOC, GPIO_Pin_9);}
- #define USIM0_L() {GPIO_ResetBits(GPIOC, GPIO_Pin_9);}
- #define USIM1_H() {GPIO_SetBits(GPIOA, GPIO_Pin_8);}
- #define USIM1_L() {GPIO_ResetBits(GPIOA, GPIO_Pin_8);}
- #define USIM3_CD GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3)//读取USIM3_CD
- #define USIM2_CD GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_4)//读取USIM2_CD
- #define USIM1_CD GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_5)//读取USIM1_CD
- #define USIM3_PWR_ON() {GPIO_SetBits(GPIOC, GPIO_Pin_6);}
- #define USIM3_PWR_OFF() {GPIO_ResetBits(GPIOC, GPIO_Pin_6);}
- #define USIM2_PWR_ON() {GPIO_SetBits(GPIOC, GPIO_Pin_7);}
- #define USIM2_PWR_OFF() {GPIO_ResetBits(GPIOC, GPIO_Pin_7);}
- #define USIM1_PWR_ON() {GPIO_SetBits(GPIOC, GPIO_Pin_8);}
- #define USIM1_PWR_OFF() {GPIO_ResetBits(GPIOC, GPIO_Pin_8);}
- enum _RESET_FLAG_{
- RESET_PINRST = 0x01, // NRST 引脚复位
- RESET_PORRSTF = 0x02, // 上电掉电复位
- RESET_SFTRSTF = 0x04, // 软件复位
- RESET_IWDGRSTF = 0x08, //独立看门狗复位
- RESET_WWDGRSTF = 0x10, // 窗口看门狗复位
- RESET_LPWRRSTF = 0x20, // 低功耗复位
- };
- //#define LED_ON() {GPIO_SetBits(GPIOE, GPIO_Pin_14);}
- //#define LED_OFF() {GPIO_ResetBits(GPIOE, GPIO_Pin_14);}
- //#define LED_RUN PEout(14)
- //#define SW_POS1_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_3);}
- //#define SW_POS1_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_3);}
- //#define SW_POS2_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_4);}
- //#define SW_POS2_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_4);}
- //#define SW_ITSY1_ON() {GPIO_SetBits(GPIOD, GPIO_Pin_5);}
- //#define SW_ITSY1_OFF() {GPIO_ResetBits(GPIOD, GPIO_Pin_5);}
- //#define SW_ITSY2_ON() {GPIO_SetBits(GPIOD, GPIO_Pin_6);}
- //#define SW_ITSY2_OFF() {GPIO_ResetBits(GPIOD, GPIO_Pin_6);}
- //#define LED_ON_ALL() {GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);\
- // GPIO_ResetBits(GPIOC, GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);}
- //#define LED_OFF_ALL() {GPIO_SetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);\
- // GPIO_SetBits(GPIOC, GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);}
- //#define LED0_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_12);}
- //#define LED0_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_12);}
- //#define LED1_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_13);}
- //#define LED1_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_13);}
- //#define LED2_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_14);}
- //#define LED2_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_14);}
- //#define LED3_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_15);}
- //#define LED3_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_15);}
- //#define LED4_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_6);}
- //#define LED4_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_6);}
- //#define LED5_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_7);}
- //#define LED5_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_7);}
- //#define LED6_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_8);}
- //#define LED6_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_8);}
- //#define LED7_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_9);}
- //#define LED7_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_9);}
- //#define KEY0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)//读取按键0
- //#define KEY0_PRES 1 //KEY0按下
- //#define KEY1_PRES 2 //KEY1按下
- //#define KEY2_PRES 3 //KEY2按下
- //#define WKUP_PRES 4 //KEY_UP按下(即WK_UP/KEY_UP)
- #define OFFSET_OF(type, member) ((int)(size_t)&(((type *)0)->member))
- #define CONTAINER_OF(ptr, type, member) \
- ((type *)(void *)(((char *)(ptr)) - OFFSET_OF(type, member)))
- #define BOOT_LOGO_INFO \
- "\r\n" \
- "********************************************************\r\n" \
- "* Copyright (c) GoldenBean Technology Co.,Ltd. *\r\n" \
- "* All rights Reserved. *\r\n" \
- "********************************************************\r\n"
-
- void BSP_Init(void);
- void data_dump(const char *name, uint8_t *data, uint16_t length);
- void SysTick_init(void);
- void board_info_get(uint16_t *flash_size, uint16_t *ram_size, uint8_t * chip_id);
- int adc_test(void);
- void system_info_update_pos(uint32_t pos, uint32_t value);
- void system_info_update(sys_eeprom_info_t *p_info);
- void system_info_get(sys_eeprom_info_t *p_info);
- uint8_t KEY_Scan(uint8_t mode);
- extern uint8_t check_usim_status(uint8_t type);
- void sim_switch(uint8_t code);
- void gateway_power_info_get(void);
- extern uint32_t system_reset_flag_get(void);
- extern void getcpuTypeIdcode(void);
- extern void system_first_powerup(void);
- #endif
|