bsp.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. /**
  2. ******************************** STM32F10x *********************************
  3. * @文件名 : bsp.c
  4. * @作者 : sun
  5. * @库版本 : V3.5.0
  6. * @文件版本 : V1.0.0
  7. * @日期 : 2016年05月09日
  8. * @摘要 : BSP板级支持包头文件
  9. ******************************************************************************/
  10. /* 定义防止递归包含 ----------------------------------------------------------*/
  11. #ifndef _BSP_H
  12. #define _BSP_H
  13. /* 包含的头文件 --------------------------------------------------------------*/
  14. #include "stm32f10x.h"
  15. /*--网关和采集器选配------------------------------------------------------------*/
  16. #define GATEWAY_DEVICE
  17. //#define COLLECT_DEVICE
  18. /* 宏定义 --------------------------------------------------------------------*/
  19. #define PORT_LED GPIOD
  20. #define PIN_LED GPIO_Pin_3
  21. /* LED开关 */
  22. #define LED_ON (PORT_LED->BRR = PIN_LED)
  23. #define LED_OFF (PORT_LED->BSRR = PIN_LED)
  24. #define LED_TOGGLE (PORT_LED->ODR ^= PIN_LED)
  25. /****************************************************************************************/
  26. #if (OIL_TANK)
  27. #define SOFTWARE_VERSION_BOOT 0x03011001 //0X02011001
  28. #else
  29. #define SOFTWARE_VERSION_BOOT 0x01011001 //0X02011001
  30. #endif
  31. //升级标记
  32. #define UPDATA_FLAG 0x81
  33. #define BACKOFF_FLAG 0x82
  34. #define BACKOFF_OVER 0x83
  35. #define EEPROM_VER 0X01
  36. #define EEPROM_FIRST_INIT_FLAG 0x55AA
  37. //eeprom存储的共有数据
  38. typedef enum
  39. {
  40. /*第一次上电(0X55)*/
  41. EECFG_FIRST_INIT0 = 0x0000,
  42. /*第一次上电(0XAA)*/
  43. EECFG_FIRST_INIT1 = 0x0001,
  44. /*EEPROM版本*/
  45. EECFG_VER = 0x0002,
  46. /*复位次数*/
  47. EECFG_RST_TIME0 = 0x0003,
  48. /*复位次数*/
  49. EECFG_RST_TIME1 = 0x0004,
  50. /*复位次数*/
  51. EECFG_RST_TIME2 = 0x0005,
  52. /*复位次数*/
  53. EECFG_RST_TIME3 = 0x0006,
  54. /*升级标志(本体)*/
  55. EECFG_UPDATE_FLAG0 = 0x0007,
  56. /*升级标志(掩码)*/
  57. EECFG_UPDATE_FLAG1 = 0x0008,
  58. /*升级状态(本体)*/
  59. EECFG_UPDATE_STATE0 = 0x0009,
  60. /*升级状态(掩码)*/
  61. EECFG_UPDATE_STATE1 = 0x000A,
  62. /*预留*/
  63. EECFG_RESERVE0 = 0x000B,
  64. /*预留*/
  65. EECFG_RESERVE1 = 0x000C,
  66. /*出厂信息是否被初始化过*/
  67. EECFG_INFO_ALRD_INIT = 0x000D,
  68. /*设备SN*/
  69. EECFG_SN0 = 0x000E,
  70. /*设备SN*/
  71. EECFG_SN1 = 0x000F,
  72. /*设备SN*/
  73. EECFG_SN2 = 0x0010,
  74. /*设备SN*/
  75. EECFG_SN3 = 0x0011,
  76. /*设备类型*/
  77. EECFG_DEV_TYPE0 = 0x0012,
  78. /*设备类型*/
  79. EECFG_DEV_TYPE1 = 0x0013,
  80. /*生产厂家*/
  81. EECFG_MFRS0 = 0x0014,
  82. /*生产厂家*/
  83. EECFG_MFRS1 = 0x0015,
  84. /*批次号*/
  85. EECFG_BN0 = 0x0016,
  86. /*批次号*/
  87. EECFG_BN1 = 0x0017,
  88. /*生产日期*/
  89. EECFG_PD0 = 0x0018,
  90. /*生产日期*/
  91. EECFG_PD1 = 0x0019,
  92. /*生产日期*/
  93. EECFG_PD2 = 0x001A,
  94. /*生产日期*/
  95. EECFG_PD3 = 0x001B,
  96. /*PCB版本*/
  97. EECFG_PCB_VER = 0x001C,
  98. /*预留*/
  99. EECFG_RESERVED0 = 0x001D,
  100. /*预留*/
  101. EECFG_RESERVED1 = 0x001E,
  102. /*预留*/
  103. EECFG_RESERVED2 = 0x001F,
  104. /*预留*/
  105. EECFG_RESERVED3 = 0x0020,
  106. /*Bootloader版本*/
  107. EECFG_BT_VER0 = 0x0021,
  108. /*Bootloader版本*/
  109. EECFG_BT_VER1 = 0x0022,
  110. /*Bootloader版本*/
  111. EECFG_BT_VER2 = 0x0023,
  112. /*Bootloader版本*/
  113. EECFG_BT_VER3 = 0x0024,
  114. /*产测版本*/
  115. EECFG_PT_VER0 = 0x0025,
  116. /*产测版本*/
  117. EECFG_PT_VER1 = 0x0026,
  118. /*产测版本*/
  119. EECFG_PT_VER2 = 0x0027,
  120. /*产测版本*/
  121. EECFG_PT_VER3 = 0x0028,
  122. /*APP1版本*/
  123. EECFG_APP1_VER0 = 0x0029,
  124. /*APP1版本*/
  125. EECFG_APP1_VER1 = 0x002A,
  126. /*APP1版本*/
  127. EECFG_APP1_VER2 = 0x002B,
  128. /*APP1版本*/
  129. EECFG_APP1_VER3 = 0x002C,
  130. /*APP2版本*/
  131. EECFG_APP2_VER0 = 0x002D,
  132. /*APP2版本*/
  133. EECFG_APP2_VER1 = 0x002E,
  134. /*APP2版本*/
  135. EECFG_APP2_VER2 = 0x002F,
  136. /*APP2版本*/
  137. EECFG_APP2_VER3 = 0x0030,
  138. /*APP3版本*/
  139. EECFG_APP3_VER0 = 0x0031,
  140. /*APP3版本*/
  141. EECFG_APP3_VER1 = 0x0032,
  142. /*APP3版本*/
  143. EECFG_APP3_VER2 = 0x0033,
  144. /*APP3版本*/
  145. EECFG_APP3_VER3 = 0x0034,
  146. /*EEPROM存储数据字节数*/
  147. EECFG_NUM
  148. }eeprom_common_data ;
  149. typedef struct _Device_version_info
  150. {
  151. uint32_t boot_ver;
  152. uint32_t PT_ver;
  153. uint32_t APP1_ver;
  154. uint32_t APP2_ver;
  155. uint32_t APP3_ver;
  156. } Device_version_info_t;
  157. extern Device_version_info_t device_version_info;
  158. typedef struct _eeprom_first_info
  159. {
  160. uint16_t eeprom_first_init_flag;
  161. uint8_t eeprom_ver;
  162. uint32_t reset_total_num;
  163. uint16_t updata_flag;
  164. uint16_t updata_state;
  165. }__attribute__((packed)) eeprom_first_info_t;
  166. extern eeprom_first_info_t eeprom_first_info;
  167. void eeprom_init_handle(void);
  168. void eeprom_info_updata(void);
  169. typedef void (*pFunction)(void);
  170. /* 函数申明 ------------------------------------------------------------------*/
  171. void GPIO_COMM_Init(u32 clk, GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIOMode_TypeDef mode, GPIOSpeed_TypeDef speed);
  172. void System_Initializes(void);
  173. void SysReboot(void);
  174. #endif /* _BSP_H */
  175. /**** Copyright (C)2016 sun. All Rights Reserved **** END OF FILE ****/