MR16/User/bsp/flash.h
2025-12-04 21:52:36 +08:00

52 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ----------------------------------------------------------------- */
#include <stdint.h>
#include "bsp/bsp.h"
/* USER INCLUDE BEGIN */
/* USER INCLUDE END */
/* Exported constants ------------------------------------------------------- */
/* Exported macro ----------------------------------------------------------- */
/* USER DEFINE BEGIN */
/* USER DEFINE END */
/* Exported types ----------------------------------------------------------- */
/* Exported functions prototypes -------------------------------------------- */
#include "main.h"
//=========================用户根据自己的需要设置
#define STM32_FLASH_SIZE 64 //所选STM32的FLASH容量大小(单位为K)
#if STM32_FLASH_SIZE < 256 //设置扇区大小
#define STM_SECTOR_SIZE 1024 //1K字节
#else
#define STM_SECTOR_SIZE 2048 //2K字节
#endif
#define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址
#define FLASH_SAVE_ADDR STM32_FLASH_BASE+STM_SECTOR_SIZE*56 //写Flash的地址这里从倒数第二页开始
#define STM32_FLASH_WREN 1 //使能FLASH写入(0不使能;1使能)
#define FLASH_WAITETIME 50000 //FLASH等待超时时间
uint16_t STMFLASH_ReadHalfWord(uint32_t faddr); //读出半字
void STMFLASH_Write(uint32_t WriteAddr,uint16_t *pBuffer,uint16_t NumToWrite); //从指定地址开始写入指定长度的数据
void STMFLASH_Read(uint32_t ReadAddr,uint16_t *pBuffer,uint16_t NumToRead); //从指定地址开始读出指定长度的数据
void Flash_PageErase(uint32_t PageAddress); //扇区擦除
/* USER FUNCTION BEGIN */
/* USER FUNCTION END */
#ifdef __cplusplus
}
#endif