#ifndef __STMFLASH_H__ #define __STMFLASH_H__ #include "stm32f10x.h" ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途 //ALIENTEK战舰STM32开发板 //STM32 FLASH 驱动代码 //正点原子@ALIENTEK //技术论坛:www.openedv.com //修改日期:2012/9/13 //版本:V1.0 //版权所有,盗版必究。 //Copyright(C) 广州市星翼电子科技有限公司 2009-2019 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// //用户根据自己的需要设置 #define FLASH_START_ADDR 0x08005000 //应用起始地址 #define STM32_FLASH_SIZE 128 //所选STM32的FLASH容量大小(单位为K) #define STM32_FLASH_WREN 1 //使能FLASH写入(0,不是能;1,使能) #define STM32_APP_SIZE 64 //应用大小:64k ////////////////////////////////////////////////////////////////////////////////////////////////////// //FLASH起始地址 #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址 //FLASH解锁键值 void STMFLASH_Write_NoCheck ( u32 WriteAddr, u16 *pBuffer, u16 NumToWrite ); u16 STMFLASH_ReadHalfWord ( u32 faddr ); //读出半字 void STMFLASH_WriteLenByte ( u32 WriteAddr, u32 DataToWrite, u16 Len ); //指定地址开始写入指定长度的数据 u32 STMFLASH_ReadLenByte ( u32 ReadAddr, u16 Len ); //指定地址开始读取指定长度数据 void STMFLASH_Write ( u32 WriteAddr, u16 *pBuffer, u16 NumToWrite ); //从指定地址开始写入指定长度的数据 void STMFLASH_Read ( u32 ReadAddr, u16 *pBuffer, u16 NumToRead ); //从指定地址开始读出指定长度的数据 //测试写入 void Test_Write ( u32 WriteAddr, u16 WriteData ); #endif