myFlashData.c 969 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "myFlashData.h"
  2. #include "stmflash.h"
  3. /**
  4. * 将数据写入flash
  5. * @pBuffer,写入数据地址指针
  6. * @writeLen,写入数据长度
  7. 备注:
  8. 写入数据以BYTE为单位,保存flash地址:@FLASH_APP1_PARAMS_ADDR
  9. */
  10. void myFlash_write(uint8_t *pBuffer,uint16_t writeLen)
  11. {
  12. STMFLASH_Write(FLASH_APP1_PARAMS_ADDR, (uint16_t *)pBuffer, (writeLen % 2) ? (writeLen + 1) : writeLen);
  13. }
  14. /**
  15. * 读取flash中的数据
  16. * @pBuffer,读取数据缓存地址指针
  17. * @writeLen,读取数据的长度
  18. 备注:
  19. 读取的数据以BYTE为单位,读取flash的初始地址:@FLASH_APP1_PARAMS_ADDR
  20. */
  21. void myFlash_read(uint8_t *pBuffer,uint16_t readLen)
  22. {
  23. uint16_t i;
  24. uint32_t readAddr = FLASH_APP1_PARAMS_ADDR;
  25. uint16_t *pBufferT = (uint16_t *)pBuffer;
  26. readLen = (readLen % 2) ? (readLen + 1) : readLen;
  27. for(i = 0; i < readLen; i++)
  28. {
  29. pBufferT[i] = STMFLASH_ReadHalfWord(readAddr);//读取2个字节.
  30. readAddr += 2;//偏移2个字节.
  31. }
  32. }