| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef __STMFLASH_H__
- #define __STMFLASH_H__
- #include "sys.h"
- //////////////////////////////////////////////////////////////////////////////////
- //本程序只供学习使用,未经作者许可,不得用于其它任何用途
- //ALIENTEK miniSTM32开发板
- //STM32 FLASH 驱动代码
- //正点原子@ALIENTEK
- //技术论坛:www.openedv.com
- //修改日期:2012/9/13
- //版本:V1.0
- //版权所有,盗版必究。
- //Copyright(C) 广州市星翼电子科技有限公司 2009-2019
- //All rights reserved
- //////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////////////////
- //用户根据自己的需要设置
- #define STM32_FLASH_SIZE 256 //所选STM32的FLASH容量大小(单位为K)
- #define STM32_FLASH_WREN 1 //使能FLASH写入(0,不是能;1,使能)
- //////////////////////////////////////////////////////////////////////////////////////////////////////
- //FLASH起始地址
- #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址
- //FLASH解锁键值
-
- 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);
- //擦除app1
- uint32_t erase_app1(void);
- //擦除app2
- uint32_t erase_app2(void);
- //擦除app3,
- uint32_t erase_app3(void);
- //复制,
- uint32_t cp_app3_app1(void);
- //复制,
- uint32_t cp_app1_app2(void);
- //复制,
- uint32_t cp_app2_app1(void);
- //读取app1,
- uint32_t read_app1(void);
- //读取app2,
- uint32_t read_app2(void);
- //读取app3,
- uint32_t read_app3(void);
- //读取OptionBytes,
- uint32_t read_OptionBytes(void);
- #endif
|