#ifndef __BSP_H__ #define __BSP_H__ #include "gd32f10x.h" #ifdef TY_0901 #define SOFTWARE_VERSION_BOOT 0X09011002 #elif defined TY_0902 #define SOFTWARE_VERSION_BOOT 0X09021002 #elif defined TY_0904 #define SOFTWARE_VERSION_BOOT 0X09041001 #endif //升级标记 #define UPDATA_FLAG 0x81 #define BACKOFF_FLAG 0x82 #define BACKOFF_OVER 0x83 #define DEVICE_PUBLIC_INFO_ADDR 0x00 //公共信息存储地址 #define DEVICE_VERSION_INFO_ADDR 0x100 //软件版本存储地址 #define DEVICE_RESET_ADDR 0x140 //复位次数存储 #define FRAM_MQTT_MSG 0x4C0 //mqtt信息存储地址 //#define IMEI_ADDR 0x40 //设备存储信息 //公共信息 typedef struct _device_public_info_t { uint16_t eeprom_first_flag; //是否第一次上电 uint8_t eeprom_ver; //eeprom版本 uint8_t config_flag; //是否配置的标记 uint32_t device_sn; //设备sn uint16_t device_type; //设备类型 // uint16_t device_type2; //设备类型 uint16_t manufactures; //产品制造商 uint16_t batch_number; //批次号 uint32_t production_data; //出厂日期 uint8_t pcb_ver; //PCB版本 }__attribute__((packed)) device_public_info_t; //单片机信息 typedef struct _device_mcu_info_t { uint32_t bootloader_ver; //bootloader版本 uint32_t pt_ver; //产测版本 uint32_t app1_ver; //app1版本 uint32_t app2_ver; //app2版本 uint32_t app3_ver; //app3版本 // uint32_t reset_total_cnt; //复位次数 // uint16_t updata_state; //升级状态 // uint16_t lora_index; //Lora索引 }__attribute__((packed)) device_mcu_info_t; /* mqtt IP地址 端口号*/ typedef struct _MQTT_IP_PORT_{ uint8_t flag; char port[6]; // 端口号 char ip[32]; //IP地址 char admin[8]; // 用户名 char password[16]; // 密码 }__attribute__((packed)) MqttIdPort; extern device_public_info_t device_public_info; extern device_mcu_info_t device_mcu_info; extern MqttIdPort mqttidport; extern uint32_t Reset_cnt; void RCC_Configuration(void); void IWDG_Config(void); void eeprom_init_handle(void); void eeprom_info_updata(void); uint16_t set_flag_not(uint16_t data); uint8_t flag_not_cmp(uint16_t data); uint8_t app_check(uint32_t addr, uint32_t len, uint32_t *checkdata); #endif