Browse Source

zflash添加擦除,写入,读取函数

external_Interrupt
tianjialong 2 years ago
parent
commit
a1c1f8906d
  1. 38
      usersrc/zflash.c
  2. 9
      usersrc/zflash.h

38
usersrc/zflash.c

@ -1 +1,37 @@
#include "zflash.h"
#include "zflash.h"
HAL_StatusTypeDef FlashErase(void)
{
HAL_StatusTypeDef status;
uint32_t sector_error_point;
FLASH_EraseInitTypeDef flash_erase_structer = {
//
.TypeErase = FLASH_TYPEERASE_SECTORS, //
.Sector = FLASH_SECTOR_7, //
.NbSectors = 1, //
.VoltageRange = FLASH_VOLTAGE_RANGE_3 //
};
HAL_FLASH_Unlock(); //
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR |
FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); //
status = HAL_FLASHEx_Erase(&flash_erase_structer, &sector_error_point);
HAL_FLASH_Lock(); //
return status;
}
//
void FlashWrite(uint32_t StartAddress, uint32_t data)
{
// StartAddress地址
HAL_FLASH_Unlock(); //
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, StartAddress, data);
HAL_FLASH_Lock(); //
}
//
uint32_t FlashRead(uint32_t StartAddress)
{
return *(uint32_t *)StartAddress;
}

9
usersrc/zflash.h

@ -1 +1,8 @@
#pragma once
#pragma once
#include "main.h"
#define FLASH_START_ADDRESS 0x08078000
HAL_StatusTypeDef FlashErase(void);
void FlashWrite(uint32_t StartAddress, uint32_t data);
uint32_t FlashRead(uint32_t StartAddress);
Loading…
Cancel
Save