stmflash.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef __STMFLASH_H__
  2. #define __STMFLASH_H__
  3. #include "main.h"
  4. #include "string.h"
  5. #include "stdio.h"
  6. #include "usart.h"
  7. extern void FLASH_PageErase(uint32_t PageAddress);
  8. #define STM32_FLASH_SIZE 512 //所选STM32的FLASH容量大小(单位为K)
  9. #define STM32_FLASH_WREN 1 //使能FLASH写入(0,不是能;1,使能)
  10. #define FLASH_WAITETIME 50000 //FLASH等待超时时间
  11. //FLASH起始地址
  12. #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址
  13. uint8_t STMFLASH_GetStatus(void); //获得状态
  14. uint8_t STMFLASH_WaitDone(uint16_t time); //等待操作结束
  15. uint8_t STMFLASH_ErasePage(uint32_t paddr); //擦除页
  16. uint8_t STMFLASH_WriteHalfWord(uint32_t faddr, uint16_t dat);//写入半字
  17. uint16_t STMFLASH_ReadHalfWord(uint32_t faddr); //读出半字
  18. void STMFLASH_WriteLenByte(uint32_t WriteAddr,uint32_t DataToWrite,uint16_t Len); //指定地址开始写入指定长度的数据
  19. uint32_t STMFLASH_ReadLenByte(uint32_t ReadAddr,uint16_t Len); //指定地址开始读取指定长度数据
  20. void STMFLASH_Write(uint32_t WriteAddr,uint16_t *pBuffer,uint16_t NumToWrite); //从指定地址开始写入指定长度的数据
  21. void STMFLASH_Read(uint32_t ReadAddr,uint16_t *pBuffer,uint16_t NumToRead); //从指定地址开始读出指定长度的数据
  22. //测试写入
  23. void Test_Write(uint32_t WriteAddr,uint16_t WriteData);
  24. #endif