STM32 内部Flash

一.简介

STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程

读写FLASH的用途:                                                                                                                                利用程序存储器的剩余空间来保存掉电不丢失的用户数据                                                                  通过在程序中编程(IAP),实现程序的自我更新                                                                              在线编程(In-Circuit Programming – ICP)用于更新程序存储器的全部内容,它通过JTAG、SWD协议或系统加载程序(Bootloader)下载程序                                                                           在程序中编程(In-Application Programming – IAP)可以使用微控制器支持的任一种通信接口下载程序

 二.Flash操作

1.FLASH解锁

FPEC共有三个键值:RDPRT键 = 0x000000A5                                                                                                                          KEY1 = 0x45670123                                                                                                                          KEY2 = 0xCDEF89AB

解锁:复位后,FPEC被保护,不能写入FLASH_CR                                                                                  在FLASH_KEYR先写入KEY1,再写入KEY2,解锁                                                                          错误的操作序列会在下次复位前锁死FPEC和FLASH_CR

加锁: 设置FLASH_CR中的LOCK位锁住FPEC和FLASH_CR

2.使用指针访问存储器

加上_IO  volatile(防止编译器优化) 

三.Flash擦除

四.闪存的写入

五.闪存规划及编程

uint32_t MyFLASH_ReadWord(uint32_t Address)
{
    return *((__IO uint32_t*)(Address));
}


uint16_t MyFLASH_ReadHalfWord(uint32_t Address)
{
    return *((__IO uint16_t*)(Address));
}

uint8_t MyFLASH_ReadByte(uint32_t Address)
{
    return *((__IO uint8_t*)(Address));
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值