94 lines
2.7 KiB
C
Raw Normal View History

2021-07-28 13:15:22 +08:00
#ifndef __STMFLASH_H
#define __STMFLASH_H
#include "sys.h"
//////////////////////////////////////////////////////////////////////////////////
/**************************************************************************/
//STM32<33>ڲ<EFBFBD>FLASH<53><48>д <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/**************************************************************************/
//////////////////////////////////////////////////////////////////////////////////
//FLASH<53><48>ʼ<EFBFBD><CABC>ַ
#define STM32_FLASH_BASE 0x08000000 //STM32 FLASH<53><48><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
#define FLASH_WAITETIME 50000 //FLASH<53>ȴ<EFBFBD><C8B4><EFBFBD>ʱʱ<CAB1><CAB1>
//STM32H7 FLASH <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//BANK1
#define ADDR_FLASH_SECTOR_0_BANK1 ((uint32_t)0x08000000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_1_BANK1 ((uint32_t)0x08020000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_2_BANK1 ((uint32_t)0x08040000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_3_BANK1 ((uint32_t)0x08060000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_4_BANK1 ((uint32_t)0x08080000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_5_BANK1 ((uint32_t)0x080A0000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_6_BANK1 ((uint32_t)0x080C0000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_7_BANK1 ((uint32_t)0x080E0000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
//BANK2
#define ADDR_FLASH_SECTOR_0_BANK2 ((uint32_t)0x08100000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_1_BANK2 ((uint32_t)0x08120000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_2_BANK2 ((uint32_t)0x08140000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_3_BANK2 ((uint32_t)0x08160000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_4_BANK2 ((uint32_t)0x08180000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_5_BANK2 ((uint32_t)0x081A0000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_6_BANK2 ((uint32_t)0x081C0000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
#define ADDR_FLASH_SECTOR_7_BANK2 ((uint32_t)0x081E0000) //<2F><><EFBFBD><EFBFBD>0<EFBFBD><30>ʼ<EFBFBD><CABC>ַ, 128 Kbytes
u32 STMFLASH_ReadWord(u32 faddr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite); //<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʼд<CABC><D0B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
void STMFLASH_Read(u32 ReadAddr,u32 *pBuffer,u32 NumToRead); //<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
#endif
/**************************************************************************/
//FLASHģ<48><C4A3>EEPROM ʵ<><CAB5>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/**************************************************************************/