stmflash.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef __STMFLASH_H__
  2. #define __STMFLASH_H__
  3. #include "sys.h"
  4. //////////////////////////////////////////////////////////////////////////////////
  5. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  6. //ALIENTEK miniSTM32开发板
  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 STM32_FLASH_SIZE 256 //所选STM32的FLASH容量大小(单位为K)
  19. #define STM32_FLASH_WREN 1 //使能FLASH写入(0,不是能;1,使能)
  20. //////////////////////////////////////////////////////////////////////////////////////////////////////
  21. //FLASH起始地址
  22. #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址
  23. //FLASH解锁键值
  24. u16 STMFLASH_ReadHalfWord(u32 faddr); //读出半字
  25. void STMFLASH_WriteLenByte(u32 WriteAddr,u32 DataToWrite,u16 Len); //指定地址开始写入指定长度的数据
  26. u32 STMFLASH_ReadLenByte(u32 ReadAddr,u16 Len); //指定地址开始读取指定长度数据
  27. void STMFLASH_Write(u32 WriteAddr,u16 *pBuffer,u16 NumToWrite); //从指定地址开始写入指定长度的数据
  28. void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead); //从指定地址开始读出指定长度的数据
  29. //测试写入
  30. void Test_Write(u32 WriteAddr,u16 WriteData);
  31. //擦除app1
  32. uint32_t erase_app1(void);
  33. //擦除app2
  34. uint32_t erase_app2(void);
  35. //擦除app3,
  36. uint32_t erase_app3(void);
  37. //复制,
  38. uint32_t cp_app3_app1(void);
  39. //复制,
  40. uint32_t cp_app1_app2(void);
  41. //复制,
  42. uint32_t cp_app2_app1(void);
  43. //读取app1,
  44. uint32_t read_app1(void);
  45. //读取app2,
  46. uint32_t read_app2(void);
  47. //读取app3,
  48. uint32_t read_app3(void);
  49. //读取OptionBytes,
  50. uint32_t read_OptionBytes(void);
  51. #endif