这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32笔记--芯片Flash容量

共1条 1/1 1 跳转至

STM32笔记--芯片Flash容量

高工
2022-02-17 11:56:51     打赏

STM32不仅有产品唯一身份标识寄存器可以读取身份证信息,还可以读取闪存容量寄存器获得芯片的存储容量


STM32芯片容量分类

以F103系列为列,共区分为小容量、中容量、大容量三类产品


image.png

小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、 STM32F102xx和STM32F103xx微控制器。

中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、 STM32F102xx和STM32F103xx微控制器。

大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。

根据名字识别Flash大小

在芯片选型的时候,依据STM32官方的芯片命名来确定其Flash容量,已STM32F103C8T6为例,8 即代表芯片的Flash容量为64K,STM32官方的芯片命名通常以第11位做为Flash容量的标识符

4-----------表示flash为16K

6-----------表示flash为32K

8-----------表示flash为64K

B-----------表示flash为128K

C-----------表示flash为256K

D-----------表示flash为384K

E-----------表示flash为512K

F-----------表示flash为768K

G-----------表示flash为1M


读取闪存容量寄存器

在STM32参考手册可查到芯片闪存容量寄存器基地址,通过读取该寄存器,即能得到芯片的Flash容量

image.png

//STM32各个系列芯片Flash容量的基地址

 #define STM32F0_FlashAddr   0x1FFFF7CC   //STM32F0 Flash容量基地址

 #define STM32F1_FlashAddr   0x1FFFF7E0   //STM32F1 Flash容量基地址

 #define STM32F2_FlashAddr   0x1FFF7A22   //STM32F2 Flash容量基地址

 #define STM32F3_FlashAddr   0x1FFFF7CC   //STM32F3 Flash容量基地址

 #define STM32F4_FlashAddr   0x1FFF7A22   //STM32F4 Flash容量基地址

 #define STM32F7_FlashAddr   0x1FF0F442   //STM32F7 Flash容量基地址

 #define STM32L0_FlashAddr   0x1FF8007C   //STM32L0 Flash容量基地址

 #define STM32L1_FlashAddr   0x1FF8004C   //STM32L1 Flash容量基地址

 #define STM32L4_FlashAddr   0x1FFF75E0   //STM32L4 Flash容量基地址

 #define STM32H7_FlashAddr   0x1FF0F442   //STM32H7 Flash容量基地址

  

 //获取MCU的Flash容量

 void GetSTM32_FlashSize(uint32_t STM32XX_FlashAddr)

 {

   uint16_t STM32_FlashSize;

   

   STM32_FlashSize=*(uint16_t*)(STM32XX_FlashAddr);    //读取对应芯片闪存容量寄存器,得到Flash大小

   printf("芯片的Flash容量为:%d\r\n",STM32_FlashSize);

 }


验证

以原子的STM32开发板精英板做实验,精英板STM32芯片为 STM32F103ZET6,第11位为E,Flash大小则应为512K,我们通过读取芯片闪存容量寄存器做验证


image.png

读取芯片闪存容量寄存器得到的值为0x0200,转换为10进制即为512,即该芯片的Flash容量为512K





关键词: STM32     Flash     容量    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]