BSP.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. #ifndef __BSP_H
  2. #define __BSP_H
  3. #include "includes.h"
  4. #define GD32F10X_ID_ADDR 0x1FFFF7E8
  5. #define GD32F30X_ID_ADDR 0x1FFFF7E8
  6. extern uint32_t mcuID[3];
  7. void cpuidGetId(void);
  8. #define WATCHDOG_RESET_MAX_TIMES 5
  9. typedef struct _sys_eeprom_info {
  10. uint32_t DevType;
  11. uint32_t DevId;
  12. uint32_t NewVerFlag; //0: normal; 1: update, has new version.
  13. uint32_t WdgRestCnt;
  14. uint32_t SftRestCnt;
  15. uint32_t PorRestCnt;
  16. uint32_t APP1Ver;
  17. uint32_t APP2Ver;
  18. uint32_t APP3Ver;
  19. } sys_eeprom_info_t;
  20. /**********************************************/
  21. typedef enum AIR_STATE_ENUM {
  22. air_state_rcv,
  23. air_state_send
  24. } AIR_STATE_ENUM;
  25. extern uint8_t air_state;
  26. //extern uint8_t lora_rcv[128];
  27. extern uint8_t lora_flag;
  28. extern uint16_t lora_rcv_len;
  29. /**********************************************/
  30. #define GATEWAY_ALRD 01
  31. #define GATEWAY_INFO_ADDR 0x300
  32. //#define RS485_RX() {GPIO_ResetBits(GPIOB, GPIO_Pin_9);}
  33. //#define RS485_TX() {GPIO_SetBits(GPIOB, GPIO_Pin_9);}
  34. #define RS485_RX() {GPIO_ResetBits(GPIOA, GPIO_Pin_1);}
  35. #define RS485_TX() {GPIO_SetBits(GPIOA, GPIO_Pin_1);}
  36. #define LED_RUN_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_2);}
  37. #define LED_RUN_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_2);}
  38. #define LED_MOD_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_1);}
  39. #define LED_MOD_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_1);}
  40. #define LED_RUN PCout(2)
  41. #define LED_MOD PCout(1)
  42. #define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12)//读取按键0
  43. #define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_13)//读取按键1
  44. #define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_14)//读取按键2
  45. #define KEY0_PRES 1 //KEY0按下
  46. #define KEY1_PRES 2 //KEY1按下
  47. #define KEY2_PRES 3 //KEY2按下
  48. #define WKUP_PRES 4 //KEY_UP按下(即WK_UP/KEY_UP)
  49. #define USIM0_H() {GPIO_SetBits(GPIOC, GPIO_Pin_9);}
  50. #define USIM0_L() {GPIO_ResetBits(GPIOC, GPIO_Pin_9);}
  51. #define USIM1_H() {GPIO_SetBits(GPIOA, GPIO_Pin_8);}
  52. #define USIM1_L() {GPIO_ResetBits(GPIOA, GPIO_Pin_8);}
  53. #define USIM3_CD GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_3)//读取USIM3_CD
  54. #define USIM2_CD GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_4)//读取USIM2_CD
  55. #define USIM1_CD GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_5)//读取USIM1_CD
  56. #define USIM3_PWR_ON() {GPIO_SetBits(GPIOC, GPIO_Pin_6);}
  57. #define USIM3_PWR_OFF() {GPIO_ResetBits(GPIOC, GPIO_Pin_6);}
  58. #define USIM2_PWR_ON() {GPIO_SetBits(GPIOC, GPIO_Pin_7);}
  59. #define USIM2_PWR_OFF() {GPIO_ResetBits(GPIOC, GPIO_Pin_7);}
  60. #define USIM1_PWR_ON() {GPIO_SetBits(GPIOC, GPIO_Pin_8);}
  61. #define USIM1_PWR_OFF() {GPIO_ResetBits(GPIOC, GPIO_Pin_8);}
  62. enum _RESET_FLAG_{
  63. RESET_PINRST = 0x01, // NRST 引脚复位
  64. RESET_PORRSTF = 0x02, // 上电掉电复位
  65. RESET_SFTRSTF = 0x04, // 软件复位
  66. RESET_IWDGRSTF = 0x08, //独立看门狗复位
  67. RESET_WWDGRSTF = 0x10, // 窗口看门狗复位
  68. RESET_LPWRRSTF = 0x20, // 低功耗复位
  69. };
  70. //#define LED_ON() {GPIO_SetBits(GPIOE, GPIO_Pin_14);}
  71. //#define LED_OFF() {GPIO_ResetBits(GPIOE, GPIO_Pin_14);}
  72. //#define LED_RUN PEout(14)
  73. //#define SW_POS1_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_3);}
  74. //#define SW_POS1_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_3);}
  75. //#define SW_POS2_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_4);}
  76. //#define SW_POS2_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_4);}
  77. //#define SW_ITSY1_ON() {GPIO_SetBits(GPIOD, GPIO_Pin_5);}
  78. //#define SW_ITSY1_OFF() {GPIO_ResetBits(GPIOD, GPIO_Pin_5);}
  79. //#define SW_ITSY2_ON() {GPIO_SetBits(GPIOD, GPIO_Pin_6);}
  80. //#define SW_ITSY2_OFF() {GPIO_ResetBits(GPIOD, GPIO_Pin_6);}
  81. //#define LED_ON_ALL() {GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);\
  82. // GPIO_ResetBits(GPIOC, GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);}
  83. //#define LED_OFF_ALL() {GPIO_SetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);\
  84. // GPIO_SetBits(GPIOC, GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);}
  85. //#define LED0_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_12);}
  86. //#define LED0_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_12);}
  87. //#define LED1_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_13);}
  88. //#define LED1_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_13);}
  89. //#define LED2_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_14);}
  90. //#define LED2_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_14);}
  91. //#define LED3_ON() {GPIO_ResetBits(GPIOD, GPIO_Pin_15);}
  92. //#define LED3_OFF() {GPIO_SetBits(GPIOD, GPIO_Pin_15);}
  93. //#define LED4_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_6);}
  94. //#define LED4_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_6);}
  95. //#define LED5_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_7);}
  96. //#define LED5_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_7);}
  97. //#define LED6_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_8);}
  98. //#define LED6_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_8);}
  99. //#define LED7_ON() {GPIO_ResetBits(GPIOC, GPIO_Pin_9);}
  100. //#define LED7_OFF() {GPIO_SetBits(GPIOC, GPIO_Pin_9);}
  101. //#define KEY0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)//读取按键0
  102. //#define KEY0_PRES 1 //KEY0按下
  103. //#define KEY1_PRES 2 //KEY1按下
  104. //#define KEY2_PRES 3 //KEY2按下
  105. //#define WKUP_PRES 4 //KEY_UP按下(即WK_UP/KEY_UP)
  106. #define OFFSET_OF(type, member) ((int)(size_t)&(((type *)0)->member))
  107. #define CONTAINER_OF(ptr, type, member) \
  108. ((type *)(void *)(((char *)(ptr)) - OFFSET_OF(type, member)))
  109. #define BOOT_LOGO_INFO \
  110. "\r\n" \
  111. "********************************************************\r\n" \
  112. "* Copyright (c) GoldenBean Technology Co.,Ltd. *\r\n" \
  113. "* All rights Reserved. *\r\n" \
  114. "********************************************************\r\n"
  115. void BSP_Init(void);
  116. void data_dump(const char *name, uint8_t *data, uint16_t length);
  117. void SysTick_init(void);
  118. void board_info_get(uint16_t *flash_size, uint16_t *ram_size, uint8_t * chip_id);
  119. int adc_test(void);
  120. void system_info_update_pos(uint32_t pos, uint32_t value);
  121. void system_info_update(sys_eeprom_info_t *p_info);
  122. void system_info_get(sys_eeprom_info_t *p_info);
  123. uint8_t KEY_Scan(uint8_t mode);
  124. extern uint8_t check_usim_status(uint8_t type);
  125. void sim_switch(uint8_t code);
  126. void gateway_power_info_get(void);
  127. extern uint32_t system_reset_flag_get(void);
  128. extern void getcpuTypeIdcode(void);
  129. #endif