soft_flash.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef _SOFT_FLASH_
  2. #define _SOFT_FLASH_
  3. #include "stm32f1xx_hal.h"
  4. #include "stdbool.h"
  5. extern bool write_vol_information;
  6. extern bool write_uav_information;
  7. extern bool write_serial_information;
  8. struct date_vol // 电压校准信息
  9. {
  10. short _vol_flag;
  11. short cal_vol; // 0.1v
  12. };
  13. extern struct date_vol volinf;
  14. extern short set_cali_voltage;
  15. extern uint32_t set_pmu_serail;
  16. struct pmu_serial // 电压校准信息
  17. {
  18. short _flag;
  19. uint32_t num;
  20. };
  21. extern struct pmu_serial serial;
  22. typedef enum
  23. {
  24. R_Default = 0,
  25. R_NRST = 1, // 引脚复位
  26. R_POWER = 2, // 上电掉电复位
  27. R_SOFT = 3, // 软件复位
  28. R_IWD = 4, // 独立看门狗复位
  29. R_WWD = 5, // 窗口看门狗复位
  30. R_LOPWER = 6, // 低功耗复位
  31. } Reset;
  32. struct uav_type // 电压校准信息
  33. {
  34. short _uavtype_flag;
  35. short uavtype; // 机型 用于管脚初始化
  36. short abnormal_outage_flag; // 异常断电标志
  37. short reset_reason; // 重启原因
  38. };
  39. extern struct uav_type uavinf;
  40. // bootloader flag在120kb
  41. // 现在每个参数用了1kb,应该初始化两个结构体参数,整合到一起,PMU要改版,先不改了
  42. // 125kb
  43. #define FLASH_SERIAL_IFO (uint32_t)0x801F400
  44. // 126kb
  45. #define FLASH_VOL_IFO (uint32_t)0x801F800
  46. // 127kb
  47. #define FLASH_UAV_IFO (uint32_t)0x801FC00
  48. // 128kb
  49. #define FLSH_MAX_SIZE (uint32_t)0x801FFFF
  50. void ReadFlashNBtye(uint32_t ReadAddress, uint8_t *pdata, uint16_t size);
  51. HAL_StatusTypeDef WriteFlashNBtye(uint32_t ReadAddress, uint8_t *pdata, uint16_t size);
  52. short check_flash_par_normal(short par, short min_par, short max_par, uint8_t par_or_zero);
  53. void write_flash_function(void);
  54. void read_flash_function(void);
  55. void flash_read_funcktion(void);
  56. #endif