学习记录8-FLASH闪存读写

发布时间:2024年01月12日

前言

FLASH是单片机内存管理的重要一环。今天进行学习记录,希望能帮助到大家


一、代码

简单的书写代码,都是库函数,没什么逻辑,在此就不废话了

#include "stm32f10x.h"                  // Device header

uint32_t MYFLASH_ReadWord(uint32_t Address)		//字(32)位进行读取
{
	return	*((__IO uint32_t *)(Address));
}

uint16_t MYFLASH_ReadHalWord(uint32_t Address)//半字(16)位进行读取
{
	return	*((__IO uint16_t *)(Address));
}

uint8_t MYFLASH_ReadByte(uint32_t Address)//字节(8)位进行读取
{
	return	*((__IO uint8_t *)(Address));
}

void MYFLASH_EraseAllPages()	//全部擦除函数
{
	FLASH_Unlock();    //进行解锁
	FLASH_EraseAllPages();
	FLASH_Lock();	//进行上锁
}

void MYFLASH_ErasePage(uint32_t PageAddress)	//页擦除函数
{
	FLASH_Unlock();
	FLASH_ErasePage(PageAddress);
	FLASH_Lock();	
}

void MYFLASH_ProgramWord(uint32_t Address, uint32_t data)//写数据
{
	FLASH_Unlock();
	FLASH_ProgramWord(Address,data);
	FLASH_Lock();
}

void MYFLASH_ProgramHalfWord(uint32_t Address, uint16_t data)//写数据
{
	FLASH_Unlock();
	FLASH_ProgramHalfWord(Address,data);
	FLASH_Lock();
}

二、应用

1.书写

			MYFLASH_ErasePage(0x0800FC00);	//对FLASH值进行写入
			MYFLASH_ProgramWord(0x0800fc00,TEMP_1);

注释:

0x0800fc00:STM32书写数据从0x08000000开始,64K大小FLASH到0x0x0800ffff 止

因为前面书写了我们的程序,不能更改,所以我们用户的数据就可以从后往前写,所以从63K开始写。

2.读取

MYFLASH_ReadWord(0x0800fc00);

直接调用就行,和函数用法一样

文章来源:https://blog.csdn.net/2301_80596293/article/details/135351282
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。