myflash.h 1.8 KB
#ifndef __MYFLASH_H__
#define __MYFLASH_H__

#include "stm32f4xx.h"
#include "stm32f4xx_hal.h"
#include "stm32f4xx_hal_flash_ex.h"
// #include "dji_platform.h"
// #include "flash_if.h"

#define MY_DATA_WriteFlashAddress	0x0800C000	//存数据基地址,扇区三

#define WriteFlashAddress  			ADDR_FLASH_SECTOR_1
#define EndFlashAddress		 		(ADDR_FLASH_SECTOR_2 -1)

#define FINE_TURN_START_ADDR 		ADDR_FLASH_SECTOR_3
#define FINE_TURN_END_ADDR 	 		(ADDR_FLASH_SECTOR_4 - 1)


#define MINADDRESS		   	 		(ADDR_FLASH_SECTOR_1)		//舵机行程最小值
#define MAXADDRESS		   	 		(ADDR_FLASH_SECTOR_1+4)		//舵机行程最大值
#define ZEROADDRESS					(ADDR_FLASH_SECTOR_1+8)		//舵机行程零值

#define SNADDRESS		   	 		(ADDR_FLASH_SECTOR_1+0x0C)	//序列号地址
#define SN_LOCK_ADDRESS				(ADDR_FLASH_SECTOR_1+0x100)	//激活标志地址



#define PITCH_FINE_TUNE_ADDR 		((uint32_t)0x0800C100)
#define YAW_FINE_TUNE_ADDR   		((uint32_t)0x0800C108)

#define LED_PARM_ADDR				((uint32_t)0x0800C200)		//灯光模式、灯光亮度、爆闪频率
#define ALARM_PARM_ADDR				((uint32_t)0x0800C210)		//警示灯模式、颜色1、颜色2


enum {
    FLASH_OK = 0,
    FLASH_ERROR
};


extern uint8_t snBuff[20];


void Get_State(uint32_t addr,int32_t* data);

void Flash_Write_Test(void);

void Flash_Read_Test(void);

uint8_t Write_Flash(uint32_t addr,int32_t *buff, uint8_t len);

void Read_Flash(uint32_t addr,int32_t *buff, uint8_t len);

void Read_Flash_Byte(int32_t *buff, uint32_t address);

void Read_Flash_Float(float *buff, uint32_t address);


void Flash_Write_Char(uint32_t addr, uint8_t *buff, uint8_t len);

void Flash_Read_Char(uint32_t addr,  uint8_t *buff, uint8_t len);

void Flash_Read_Byte_Test(void);

void Flash_Write_Byte_Test(void);

void jz_Flash_Write(int32_t *buff,uint8_t len);

void jz_Flash_Read(int32_t *buff,uint8_t len);



#endif