stmflash.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef __STMFLASH_H__
  2. #define __STMFLASH_H__
  3. #include "main.h"
  4. #include "cmsis_os.h"
  5. #include "FreeRTOS.h"
  6. #include "task.h"
  7. #include "timers.h"
  8. #include "event_groups.h"
  9. /* Private includes ----------------------------------------------------------*/
  10. /* USER CODE BEGIN Includes */
  11. #include "string.h"
  12. #include "stdio.h"
  13. #include "usart.h"
  14. #include "config.h"
  15. #include "rkg.h"
  16. #include "cang.h"
  17. #include "kzq.h"
  18. #include "level.h"
  19. #include "tem.h"
  20. #include "angle.h"
  21. #include "xyf.h"
  22. #include "hdf.h"
  23. #include "bgy.h"
  24. #include "yqhs.h"
  25. //////////////////////////////////////////////////////////////////////////////////
  26. //本程序只供学习使用,未经作者许可,不得用于其它任何用途
  27. //ALIENTEK战舰STM32开发板V3
  28. //STM32 FLASH 驱动代码
  29. //正点原子@ALIENTEK
  30. //技术论坛:www.openedv.com
  31. //创建日期:2017/6/1
  32. //版本:V1.1
  33. //版权所有,盗版必究。
  34. //Copyright(C) 广州市星翼电子科技有限公司 2009-2019
  35. //All rights reserved
  36. //////////////////////////////////////////////////////////////////////////////////
  37. //////////////////////////////////////////////////////////////////////////////////////////////////////
  38. //用户根据自己的需要设置
  39. extern void FLASH_PageErase(uint32_t PageAddress);
  40. #define STM32_FLASH_SIZE 512 //所选STM32的FLASH容量大小(单位为K)
  41. #define STM32_FLASH_WREN 1 //使能FLASH写入(0,不是能;1,使能)
  42. #define FLASH_WAITETIME 50000 //FLASH等待超时时间
  43. //FLASH起始地址
  44. #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址
  45. uint8_t STMFLASH_GetStatus(void); //获得状态
  46. uint8_t STMFLASH_WaitDone(uint16_t time); //等待操作结束
  47. uint8_t STMFLASH_ErasePage(uint32_t paddr); //擦除页
  48. uint8_t STMFLASH_WriteHalfWord(uint32_t faddr, uint16_t dat);//写入半字
  49. uint16_t STMFLASH_ReadHalfWord(uint32_t faddr); //读出半字
  50. void STMFLASH_WriteLenByte(uint32_t WriteAddr,uint32_t DataToWrite,uint16_t Len); //指定地址开始写入指定长度的数据
  51. uint32_t STMFLASH_ReadLenByte(uint32_t ReadAddr,uint16_t Len); //指定地址开始读取指定长度数据
  52. void STMFLASH_Write(uint32_t WriteAddr,uint16_t *pBuffer,uint16_t NumToWrite); //从指定地址开始写入指定长度的数据
  53. void STMFLASH_Read(uint32_t ReadAddr,uint16_t *pBuffer,uint16_t NumToRead); //从指定地址开始读出指定长度的数据
  54. //测试写入
  55. void Test_Write(uint32_t WriteAddr,uint16_t WriteData);
  56. #endif