【MSP430入门例程】FLASH模块.pdf
《【MSP430入门例程】FLASH模块.pdf》由会员分享,可在线阅读,更多相关《【MSP430入门例程】FLASH模块.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【MSP430入门例程】:FLASH 模块一、擦除操作选择适当的时钟源和分频因子,为时序发生器提供正确时钟输入如果 Lock=1,则将它复位监视 BUSY 标志位只有当 BUSY=0 时才可以执行下一步,否则一直监视 BUSY。如果擦除一段,则设置 ERASE=1。如果擦除多段,则设置 MERAS=1 l 如果擦除多段,则设置 MERAS=1如果整个 FLASH 全擦除,则设置 RASE=1 同时 MERAS=1。对擦除的地址范围内任意位置作一次空写入,用以启动擦除操作。如果空写的地址在不能执行擦除操作的段地址范围内,则写入操作不起作用二、FLASH 编程操作选择适当的时钟源以及合适的分频因子
2、如果 Lock=1,将它复位监视 BUSY 位,直到 BUSY=0 是才可进入下一步如果写入单字或单字节,则将设置 WRT=1如果是块写或多字、多字节顺序写入,则将设置 WRT=1,BLKWRT=1将数据写入选定地址时启动时序发生器,在时序发生器的控制下完成整个过程三、FLASH 错误操作的处理如果写入高字节口令码错误,则引发 PUC 信号:小心操作可以避免;在对 FLASH 操作期间读 FLASH 内容,会引发 ACCVFIG 状态位的设置:小心操作可以避免因为在对 FLASH 操作期间,需要较长的时间,如果这时看门狗定时器 MSP430171因为在对 FLASH 操作期间,需要较长的时间,
3、如果这时看门狗定时器的数据将近尾声,则看门狗定时器溢出:建议用户程序在进行 FLASH 操作之前先停掉看门狗定时器,等操作结束之后再打开看门狗。所有的 FLASH 类型的 MSP430 器件的 0 段都包含有中断向量等重要的程序代码,如果对其进行擦除操作,将会引起严重的后果:建议用户程序在进行 FLASH 操作之前,先将该段的重要数据(或程序代码)保存到 RAM 中或写入到其他段的重要数据(或程序代码)保存到 RAM 中或写入到其他暂时未用的段中,等待该段操作完毕再还原那些数据(或程序代码);同时一定不要使正在执行的程序处在正要被擦除的段中;也不要在 FLASH 操作期间允许中断的发生。/*例
4、一*/*若想了解 MSP430 单片机常用模块应用原理,请下载 http:/ FLASH 信息区读出所需的所有有用数据(或整块读出或根据需要)并放到指定 RAM 缓冲区中(若只修改某部分数据),然后直接修改 RAM 中的数据.修改完成后就擦除整段 FLASH 信息区.接着向 FLASH 信息区写入刚才所修改的数据.最后再读出刚才写入的数据放进缓冲区.在整个调试过程中,我们可以通过 IAR 的调试环境查看其写入和读出的数据进行校验/以下程序我已通进 MC430F14 开发板进行验证,MC430F14 可以直接下载在你的板子实验./应用目标板:www.M MC430F14 开发板/编写:微控设计网
5、 DC 版主*/MSP430F147 的 FLASH 空间分配为:/程序代码区:0 x1100-0 xffff,按 512 字节分段/信息区:0 x1000-0 x10ff,按 128 字节分段/用户编写时不要将代码从 0 x1100 地址开始写起,否则.呵呵./另外,用户要了解 FLASH 物理特性,FLASH 被擦除后将全变为 1.以后的写入只能由 1 写为 0,若/需要由 0 写 1 是不能的.那么此时就必须先将整段擦除然后再对其写入.所以 FLASH 有这个不便/不像 EEPROM 那样方便,F147 共有两段信息区(256),每段为 128 字节.如果是一般应用也够了./若然不够,你
6、可以选用 MC430F14 开发板上的 EEPROM 做为信息存贮器.当然这要灵活应用.#include#define FLASH_ADDRESS 0 x01000/定义 FLASH 信息区地址 B 段unsigned charwrite_buff4=0 x01,0 x02,0 x04,0 x08;/用于存放被数组unsigned char read_buff4;/读出缓冲区和写缓冲区unsigned char checkout4;/读出缓冲区,用于验证的void flash_write_byte(unsigned char*pc_byte,unsigned char byte);void f
7、lash_erase(unsigned int*);void read_array(unsigned char*pc_byte,unsigned char*array,unsigned char amount);void write_array(unsigned char*pc_byte,unsigned char*array,unsigned char amount);/*void main(void)unsigned char*pc_flash;/定义字节指针变量unsigned int*pc_flash_segment;/定义段地址指针变量unsigned char i;WDTCTL=W
8、DTPW+WDTHOLD;pc_flash=(unsigned char*)FLASH_ADDRESS;/为指针初始化pc_flash_segment=(unsigned int*)FLASH_ADDRESS;/-read_array(pc_flash,read_buff,4);/读出指定字节数量for(i=0;i4;i+)/模拟修改read_buffi=write_buffi;flash_erase(pc_flash_segment);/段擦除write_array(pc_flash,write_buff,4);/写入指定字节数量read_array(pc_flash,checkout,4)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSP430入门例程 MSP430 入门 例程 FLASH 模块
限制150内