STM32之内部闪存(FLASH)
一、内部Flash原理与应用[*]配景说明
程序是由指令+数据构成,一般产品都会选择把程序/固件举行固化,一般是选择把程序大概固件存储到非易失性存储设备,例如存储到Flash中,由于Flash的制作工艺简单,本钱低,容量大。
[*]基本概念
存储器指的是若干个存储单位的集合,每个存储单位(1字节)都可以存储8bit二进制数,为了方便的操纵存储单位,就为每个存储单位都分配了地点,就可以通过寻址来访问存储单位。由于盘算机的处理的数据量较大,并且运算速度都很快,就要求存储器的容量更大,并且存取数据的速度更快。
https://i-blog.csdnimg.cn/direct/aa4a21ab372e498aba72feef007a3dd4.png
[*]存储类型
一般存储器根据存取方式可以分为两类:ROM (只读存储器) or RAM(随机访问存储器),也可以根据掉电是否会丢失的特性分为两类:非易失性存储设备 or 易失性存储设备。主要研究的就是ROM。
https://i-blog.csdnimg.cn/direct/57da29383bf24e22964beb470d5df5fa.png
[*]ROM 只读存储器
https://i-blog.csdnimg.cn/direct/526cd4162c0d4185ab336b10b7a7d137.png
[*]PROM 可编程只读存储器
https://i-blog.csdnimg.cn/direct/02f6cd65a5974f0ea2e092681514f2f3.png
[*]EPROM 可擦除可编程只读存储器
https://i-blog.csdnimg.cn/direct/ed4ec06e3c934146a5834ef8b233c793.png
[*]EEPROM 电可擦除可编程只读存储器
https://i-blog.csdnimg.cn/direct/33e326638dd04fa7b854fee4ee3ec097.png
[*]Flash 快闪存储器
https://i-blog.csdnimg.cn/direct/fd328a10f6f948ab921d241afa9da4db.png
[*]内存分布
可以先把握MCU内置的512KB大小的Flash的操纵,注意:falsh的特点是掉电不丢失,但是Flash内部存储空间是分为若干个扇区的,并且扇区内部的存储单位在举行写入之前,必须要先举行擦除动作,并且擦除是不能针对某个存储单位,而是某个扇区大概整片空间。
目前STM32F407ZET6这颗MCU内部有512KB的Flash,分为8个扇区,扇区0 ~ 扇区7,并且扇区的寻址范围是0x0800 0000 ~ 0x0807 FFFF。
https://i-blog.csdnimg.cn/direct/646e68c89f3640adace3a43e84186fa4.png
[*]工作原理
https://i-blog.csdnimg.cn/direct/cd9719204cdc4ad1925b1c3cbb14d25c.png
https://i-blog.csdnimg.cn/direct/0ddf24bb174048b8ab3f039cbcfbdf13.png
https://i-blog.csdnimg.cn/direct/9223ac759581452d947ff78401b07187.png
提示:一般存储IC都具有写掩护机制,一般通过硬件管脚实现写掩护,一般是低电平有效,但是MCU内部的Flash也具有写掩护机制,是通过软件实现的,以是在对Flash举行编程/擦除的时间,需要先排除Flash的写掩护。
https://i-blog.csdnimg.cn/direct/b84de2d0be504ab698c2fc18c1b18be8.png
[*]访问流程
https://i-blog.csdnimg.cn/direct/71926505d1254b689bbba7f5b9928d60.png
[*]擦除
https://i-blog.csdnimg.cn/direct/720ba70e54964991a11f2f2ebf75eecd.png
[*]编程
https://i-blog.csdnimg.cn/direct/f65c54e16c9949079e7746c0c8169ef7.png
[*]程序设计
如果用户计划对Flash空间举行编程大概擦除,对应的流程可以参考帮助手册以及文件注释
https://i-blog.csdnimg.cn/direct/a5e713dfc862424aabc944965fb61a38.png
https://i-blog.csdnimg.cn/direct/2ab04839077a422cb6922bf1c5413390.png
https://i-blog.csdnimg.cn/direct/f70e4626c5934f2f9d1cc8a3eae5c954.png
[*]效果验证
https://i-blog.csdnimg.cn/direct/71c2b78b44b34ec8abea6858ea69b56c.png
练习:利用DHT11温湿度传感器获取室内的温湿度数据,每隔5获取1次,并记录获取温湿度的时间,举行格式化的转换,格式为”2025/04/10 16:51:30 temp=28#humi=50\r\n”,要求把每次获取的数据写入到MCU内部的扇区中。
要求数据的上限是100条记录,如果数据到达100条,则在PC端输出“内存已满”,然后要求用户可以通过2个机械按键KEY0和KEY3,当按下KEY0的时间输出全部记录,当按下KEY3的时间清空记录。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]