/** ******************************** STM32F10x ********************************* * @文件名 : bsp.c * @作者 : sun * @库版本 : V3.5.0 * @文件版本 : V1.0.0 * @日期 : 2016年05月09日 * @摘要 : BSP板级支持包头文件 ******************************************************************************/ /* 定义防止递归包含 ----------------------------------------------------------*/ #ifndef _BSP_H #define _BSP_H /* 包含的头文件 --------------------------------------------------------------*/ #include "stm32f10x.h" /*--网关和采集器选配------------------------------------------------------------*/ #define GATEWAY_DEVICE //#define COLLECT_DEVICE /* 宏定义 --------------------------------------------------------------------*/ #define PORT_LED GPIOD #define PIN_LED GPIO_Pin_3 /* LED开关 */ #define LED_ON (PORT_LED->BRR = PIN_LED) #define LED_OFF (PORT_LED->BSRR = PIN_LED) #define LED_TOGGLE (PORT_LED->ODR ^= PIN_LED) /****************************************************************************************/ #if (OIL_TANK) #define SOFTWARE_VERSION_BOOT 0x03011001 //0X02011001 #else #define SOFTWARE_VERSION_BOOT 0x01011001 //0X02011001 #endif //升级标记 #define UPDATA_FLAG 0x81 #define BACKOFF_FLAG 0x82 #define BACKOFF_OVER 0x83 #define EEPROM_VER 0X01 #define EEPROM_FIRST_INIT_FLAG 0x55AA //eeprom存储的共有数据 typedef enum { /*第一次上电(0X55)*/ EECFG_FIRST_INIT0 = 0x0000, /*第一次上电(0XAA)*/ EECFG_FIRST_INIT1 = 0x0001, /*EEPROM版本*/ EECFG_VER = 0x0002, /*复位次数*/ EECFG_RST_TIME0 = 0x0003, /*复位次数*/ EECFG_RST_TIME1 = 0x0004, /*复位次数*/ EECFG_RST_TIME2 = 0x0005, /*复位次数*/ EECFG_RST_TIME3 = 0x0006, /*升级标志(本体)*/ EECFG_UPDATE_FLAG0 = 0x0007, /*升级标志(掩码)*/ EECFG_UPDATE_FLAG1 = 0x0008, /*升级状态(本体)*/ EECFG_UPDATE_STATE0 = 0x0009, /*升级状态(掩码)*/ EECFG_UPDATE_STATE1 = 0x000A, /*预留*/ EECFG_RESERVE0 = 0x000B, /*预留*/ EECFG_RESERVE1 = 0x000C, /*出厂信息是否被初始化过*/ EECFG_INFO_ALRD_INIT = 0x000D, /*设备SN*/ EECFG_SN0 = 0x000E, /*设备SN*/ EECFG_SN1 = 0x000F, /*设备SN*/ EECFG_SN2 = 0x0010, /*设备SN*/ EECFG_SN3 = 0x0011, /*设备类型*/ EECFG_DEV_TYPE0 = 0x0012, /*设备类型*/ EECFG_DEV_TYPE1 = 0x0013, /*生产厂家*/ EECFG_MFRS0 = 0x0014, /*生产厂家*/ EECFG_MFRS1 = 0x0015, /*批次号*/ EECFG_BN0 = 0x0016, /*批次号*/ EECFG_BN1 = 0x0017, /*生产日期*/ EECFG_PD0 = 0x0018, /*生产日期*/ EECFG_PD1 = 0x0019, /*生产日期*/ EECFG_PD2 = 0x001A, /*生产日期*/ EECFG_PD3 = 0x001B, /*PCB版本*/ EECFG_PCB_VER = 0x001C, /*预留*/ EECFG_RESERVED0 = 0x001D, /*预留*/ EECFG_RESERVED1 = 0x001E, /*预留*/ EECFG_RESERVED2 = 0x001F, /*预留*/ EECFG_RESERVED3 = 0x0020, /*Bootloader版本*/ EECFG_BT_VER0 = 0x0021, /*Bootloader版本*/ EECFG_BT_VER1 = 0x0022, /*Bootloader版本*/ EECFG_BT_VER2 = 0x0023, /*Bootloader版本*/ EECFG_BT_VER3 = 0x0024, /*产测版本*/ EECFG_PT_VER0 = 0x0025, /*产测版本*/ EECFG_PT_VER1 = 0x0026, /*产测版本*/ EECFG_PT_VER2 = 0x0027, /*产测版本*/ EECFG_PT_VER3 = 0x0028, /*APP1版本*/ EECFG_APP1_VER0 = 0x0029, /*APP1版本*/ EECFG_APP1_VER1 = 0x002A, /*APP1版本*/ EECFG_APP1_VER2 = 0x002B, /*APP1版本*/ EECFG_APP1_VER3 = 0x002C, /*APP2版本*/ EECFG_APP2_VER0 = 0x002D, /*APP2版本*/ EECFG_APP2_VER1 = 0x002E, /*APP2版本*/ EECFG_APP2_VER2 = 0x002F, /*APP2版本*/ EECFG_APP2_VER3 = 0x0030, /*APP3版本*/ EECFG_APP3_VER0 = 0x0031, /*APP3版本*/ EECFG_APP3_VER1 = 0x0032, /*APP3版本*/ EECFG_APP3_VER2 = 0x0033, /*APP3版本*/ EECFG_APP3_VER3 = 0x0034, /*EEPROM存储数据字节数*/ EECFG_NUM }eeprom_common_data ; typedef struct _Device_version_info { uint32_t boot_ver; uint32_t PT_ver; uint32_t APP1_ver; uint32_t APP2_ver; uint32_t APP3_ver; } Device_version_info_t; extern Device_version_info_t device_version_info; typedef struct _eeprom_first_info { uint16_t eeprom_first_init_flag; uint8_t eeprom_ver; uint32_t reset_total_num; uint16_t updata_flag; uint16_t updata_state; }__attribute__((packed)) eeprom_first_info_t; extern eeprom_first_info_t eeprom_first_info; void eeprom_init_handle(void); void eeprom_info_updata(void); typedef void (*pFunction)(void); /* 函数申明 ------------------------------------------------------------------*/ void GPIO_COMM_Init(u32 clk, GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIOMode_TypeDef mode, GPIOSpeed_TypeDef speed); void System_Initializes(void); void SysReboot(void); #endif /* _BSP_H */ /**** Copyright (C)2016 sun. All Rights Reserved **** END OF FILE ****/