stm32l476 内部flash HAL库操作方法

本文档详细介绍了STM32L476的Flash特性,包括双银行架构、支持读写同时进行的功能。内容涵盖Flash的内存组织、写入和读取操作流程,以及具体的解锁、擦除、写入和锁定步骤。对于读取操作,可以通过目标地址直接读取数据,按字节或字进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stm32l476 FLASH特征

• Up to 1 Mbyte of Flash memory with dual bank architecture supporting read-while-write
capability (RWW).
• Memory organization: 2 banks (Bank 1 and Bank 2)
– main memory: 512 Kbyte per bank
– information block: 32 Kbyte per bank
• 72-bit wide data read (64 bits plus 8 ECC bits)
• 72-bit wide data write (64 bits plus 8 ECC bits)
• Page erase (2 Kbyte), bank erase and mass erase (both banks)
摘自 STM32 RM0351 Reference manual 文档

  • stm32l476 dual bank 地址表
    地址表
写入操作流程
  1. FLASH解锁

    HAL_FLASH_Unlock();
  2. 擦除FLASH

    HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *PageError);
  3. 写入FLASH

    HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
  4. 锁定FLASH

    HAL_FLASH_Lock();
读取操作

直接从目标地址读取, uint8_t* 按照1个字节读取,如果是uint32_t* 按照一个字读取

buff[i] = *(__IO uint8_t*)(dest_addr + i);
//直接从目标地址读取, uint8_t* 按照1个字节读取,如果是uint32_t* 按照一个字读取

具体实现

/*
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值