430单片机 Flash 操作一学就会(附源代码及调试过程)
[复制链接]
发表此文,仅以抛砖引玉之用,能使 大家 彻底学会Flash的操作, 不胜荣幸!
1. 简略的介绍Flash:flash是存储芯片的一种,通过特定的程序可以修改里面的数据。
2.Flash 的存储的优点:掉电后数据不丢失,数据存储速度快,电可擦除,在线编程,这里我们擦写Flash 最需要的就是掉电存储功能,这样我们就可以在掉电的瞬间存储住我们的数据。
我们所使用的MSP430F系列单片机各型号器件均含有容量不等的Flash存储模块,其实Flash的操作很简单,我们所进行的操作无非就是 首先,擦除Flash的某一块作为我们的数据写入区域,也就是把数据写入到这里(这里注意并不是每一段Flah都可以擦写的) 然后写入我们所需要掉电后仍存在的数据。
我们可以将程序运行过程中你所需的、掉电后需要存储起来的数据,写入Flash中。
3.Flash的操作种类: 1.擦除 2.写入 3.读取
4.Flash各操作所需要的步骤:
●擦除:1.选择适当的时钟源和分频数
2.如果Lock = 1,(这是Flash控制寄存器中的所存标志位),则打开所存,要开始操作Flash了
3.查看BUSY标志位,当BUSY=0时执行下一步,否则就一直等着
4.配置Flash 的寄存器,如果你是擦除Flash的一段,那么就是配置寄存器为一段;如果你是想擦除多段,那么 就配置为擦除一段,擦除更大的区域----一块的话,就对应的配置
5.对擦除的地址范围内任意一个位置做一次空写入,就启动了擦除操作,我们所设定的这一区域就被清除。
●写入:1.首次擦除所需要写入的Flash区域,选择适当的时钟源和分频数
2.如果Lock = 1,(这是Flash控制寄存器中的所存标志位),则打开所存,要开始操作Flash了
3.查看BUSY标志位,当BUSY=0时执行下一步,否则就一直等着
4.根据是写入 单字 或是 单字节,配置寄存器中 WRT 这一位(WRT也就是Write)
5.直接把数据 赋给 指向刚才擦除的Flash 区域的指针即可,数据就写入了
●读取:这个就更简单了,直接定义一个指针,指向我们所需要读取的Flash地址区域,
然后指针不断后移,数据就读取出来了!
附程序(带详解如下):
Flash 的操作归纳起来就是:1.要写入先擦除想写如到的的区域(地址),然后写入;要读取,直接指针指向所想读取的地址,然后指针不断后移不断读取!
[ 本帖最后由 qcxycwf 于 2012-7-31 10:32 编辑 ]
|