环境艺术设计网站推荐,做一个学校网站怎么做,网络域名注册流程,建站点寄存器分类
一般寄存器分为只读存储器 (ROM) 随机存储器(RAM)
只读存储器
只读存储器也被称为ROM 在正常工作时只能读不能写。
只读存储器经历的阶段 ROM-PROM-EPROM-EEPROM -Flash
优点#xff1a;掉电不丢失#xff0c;解构简单
缺点#xff1a;只适…寄存器分类
一般寄存器分为只读存储器 (ROM) 随机存储器(RAM)
只读存储器
只读存储器也被称为ROM 在正常工作时只能读不能写。
只读存储器经历的阶段 ROM-PROM-EPROM-EEPROM -Flash
优点掉电不丢失解构简单
缺点只适用于固定数据的存储
ROM
在出场的时候就进行数据的写入写入完后不能修改
PROM
可以修改但是需要特定的编程器 采用熔丝工艺 EPROM紫外线可擦除只读存储器
EPROM采用的是紫外线擦除 也是需要特定的编程器才能修改
电可擦除只读存储器EEPROM
EEPROM采用了电压信号擦除由于擦除和写入时需要加入高电压脉冲而且擦除和写入的时间较长一般只作为ROM来只用
可以进行某个存储单元进行擦除 成本高 容量小
Flash 闪存
Flash吸收了EPROM结构简单编程可靠的优点 又保留了EEPROM的隧道效应擦除的快捷性 而且集成度可以做到很高
Flash只能擦除某个扇区 不能擦除存储单元 随机存取器RAM
随机存储器可读可写但是掉电会丢失 他的最大的优点就是读写方便
RAM又分为静态随机存储SRAM和动态随机存储DRAM 可以看到Flash是1M 程序一般都是从Flash扇区0开始存储的 要是存储比较重要的数据一般我们都是从后面往前面存储
内部Flash的流程
如果用户打算对Flash空间进行编程或者擦除对应的流程可以参考帮助手册以及文件注释 Flash解锁 Flash擦除
需要注意在擦除扇区之前需要设置编程/擦除的并行位数字节、字、半字、双字决定了擦除的时间。 然后在进行扇区擦除的时候需要指定扇区号扇区0~扇区11扇区号可以通过扇区的地址进行计算 如果在擦除扇区的过程中打算跳转到下一个扇区需要对扇区号进行计算和偏移8 打算对扇区进行擦除操作可以调用函数库中提供的函数接口来选择擦除某个扇区或者擦除所有扇区如下图所示 函数原型
FLASH_Status FLASH_EraseSector(uint32_tFLASH_Sector, uint8_t VoltageRange)
函数参数
参数一FLASH_Sector 需要擦除的扇区号 如 FLASH_Sector_0 ~ FLASH_Sector_11
参数二VoltageRange 需要擦除的并行位数 如 VoltageRange_3 以字32bit为单位
返回值 返回lFlash的操作状态 如 FLASH_COMPLETE 标志操作完成 Flash写入
需要注意在写入扇区之前需要设置编程/擦除的并行位数字节、字、半字、双字决定了写入的时间。 Flash闪存往某个扇区写入数据的操作流程如下 打算对扇区进行写入操作可以调用函数库中提供的函数接口来选择把数据写入某个扇区 函数原型
FLASH_Status FLASH_ProgramWord(uint32_tAddress, uint32_t Data)
函数参数
参数一 Address 指的是准备写入数据的扇区地址
参数二 Data 指的是准备写入的数据内容
返回值 返回lFlash的操作状态 如 FLASH_COMPLETE 标志操作完成 Flash上锁
如果已经完成Flash扇区的数据写入为了防止出现意外状况导致扇区数据出现丢失等问题则需要重新开启Flash寄存器的写保护功能。 Flash读取
如果已经把数据写入到Flash扇区的某个地址下则可以通过访问扇区对应的地址空间来读取对应的数据这里就设计到C语言的地址访问可以通过指针进行操作。操作如下图所示 注意读取扇区地数据的时候扇区地址需要进行偏移并且要访问符合扇区地址范围的空间。 思考如果在对flash的某个扇区进行擦除之后那这个扇区的地址下面的值默认是多少 思考如果在对flash的某个扇区进行数据写入时如果扇区的起始地址中已经存在一些数 据是否需要擦除扇区 答案需要先擦除扇区再重新写入数据 思考如果在对flash的某个扇区进行数据写入时如果扇区的起始地址中已经存在一些数 据那把需要写入的数据写在已经存在的数据的地址之后是否需要擦除扇区 不需要