Files
renletao 0dfe2155b2 init
2025-02-26 16:22:02 +08:00

59 lines
2.5 KiB
C

/*
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
*
* SPDX-License-Identifier: MIT
*/
#ifndef __FLASH_H
#define __FLASH_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f0xx.h"
#include <stdbool.h>
#include "stm32f0xx_hal_flash_ex.h"
// Flash page head
#define STM32F0xx_PAGE_SIZE (0x400)
#define STM32F0xx_FLASH_PAGE0_STARTADDR (0x8000000)
#define STM32F0xx_FLASH_PAGE1_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE2_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+2*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE3_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+3*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE4_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+4*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE5_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+5*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE6_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+6*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE7_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+7*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE8_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+8*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE9_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+9*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE10_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+10*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE11_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+11*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE12_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+12*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE13_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+13*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE14_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+14*STM32F0xx_PAGE_SIZE)
#define STM32F0xx_FLASH_PAGE15_STARTADDR (STM32F0xx_FLASH_PAGE0_STARTADDR+15*STM32F0xx_PAGE_SIZE)
#define FAN_CONTROL_ADDR (STM32F0xx_FLASH_PAGE15_STARTADDR+0)
#define PWM_FREQUENCY_ADDR (STM32F0xx_FLASH_PAGE15_STARTADDR+1)
#define PWM_DUTY_CYCLE_ADDR (STM32F0xx_FLASH_PAGE15_STARTADDR+2)
#define I2C_ADDR (STM32F0xx_FLASH_PAGE15_STARTADDR+3)
bool set_fan_control(uint8_t data);
uint8_t get_fan_control(void);
bool set_pwm_freq(uint8_t data);
uint8_t get_pwm_freq(void);
bool set_pwm_duty_cycle(uint8_t data);
uint8_t get_pwm_duty_cycle(void);
bool set_i2c_addr(uint8_t data);
uint8_t get_i2c_addr(void);
bool write_flash(uint8_t control,uint8_t frequency,uint8_t duty);
#ifdef __cplusplus
}
#endif
#endif /* __FLASH_H */