Stmflash.h 1.7 KB

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