MSP430读写片内FLASH保存数据

发布者:名字太长了吗最新更新时间:2018-05-01 来源: eefocus关键字:MSP430  读写  片内FLASH  保存数据 手机看文章 扫描二维码
随时随地手机看文章

FLASH型的MSP430单片机都带有信息存储器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被写入MSP430之后,程序通过SegmengA及SegmentB就可以保存不掉电数据。注意:每次程序烧写到MSP430时,SegmengA及SegmentB都会被擦除!

接下来贴出本文的程序代码,以及程序写入信息存储器之后的FLASH数据:

  1. #include    

  2.   

  3. void WriteSegment_256 (char index,char *value,char size);  

  4. char ReadSegment_256(char index);  

  5.   

  6. void main(void)  

  7. {  

  8.   WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer  

  9.   FCTL2 = FWKEY + FSSEL0 + FN0;             // MCLK/2 for Flash Timing Generator  

  10.    

  11.   char str1[3]={0xAA,0xBB,0xCC};  

  12.     

  13.   WriteSegment_256(0,str1,3);  

  14.     

  15.   for(char i=0;i<255;i++)  

  16.     _NOP();                                   

  17.     

  18.   char str2[3]={0xBB,0xAA,0xCC};  

  19.   WriteSegment_256(0,str2,3);  

  20.     

  21. }  

  22.   

  23. #define SegmentStart 0x01000  //Segment = 0x01000~0x010FF  

  24. #define SegmentSize 255 //SegmentA + SegmentB = 256  

  25.   

  26. //*********************************************************  

  27. //读取片内存储的数据  

  28. //*********************************************************  

  29. char ReadSegment_256(char index)  

  30. {  

  31.   char *flash_ptr = ((char *) SegmentStart) + index;  

  32.   return *flash_ptr;  

  33. }  

  34.   

  35. // *****************************************************  

  36. //把数组写入数据到片内FLASH,必须先全部擦除再写入  

  37. //参数index:保存数组的位置  

  38. //参数value:数组的指针  

  39. //参数size:数组的大小  

  40. // *****************************************************  

  41. void WriteSegment_256 (char index,char *value,char size)  

  42. {  

  43.   char buffer[SegmentSize],i=0;  

  44.   char *flash_ptr = (char *) SegmentStart;  

  45.     

  46.   //先读取原FLASH数组  

  47.   for(i=0;i

  48.     buffer[i]=ReadSegment_256(i);  

  49.     

  50.   //擦除FLASH,必须  

  51.   FCTL1 = FWKEY + ERASE;                    // Set Erase bit  

  52.   FCTL3 = FWKEY;                            // Clear Lock bit  

  53.   *flash_ptr = 0;                           // Dummy write to erase Flash segment  

  54.     

  55.   //把整个数组都写入FLASH  

  56.   FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation  

  57.     

  58.   for(i=0;i

  59.     buffer[index+i]=value[i];  

  60.   for(i=0; i

  61.     *(flash_ptr++) = buffer[i];                     

  62.     

  63.   FCTL1 = FWKEY;                            // Clear WRT bit  

  64.   FCTL3 = FWKEY + LOCK;                     // Set LOCK bit  

  65. }  


关键字:MSP430  读写  片内FLASH  保存数据 引用地址:MSP430读写片内FLASH保存数据

上一篇:MSP430 FLASH结构 InfoA(1080H-10FFh)和InfoB(1000H-10FFH)
下一篇:MSP430F5438研究心得

推荐阅读最新更新时间:2024-03-16 16:01

MSP430键盘程序
// 此示例程序为中断方式,得到键盘的键值,存放在队列keybuff 中 // 此示例程序没有显示, // 键盘的按键按下引起P1口的中断服务程序,得到键盘的键值,保存到键值队列 // 在其他的中断服务程序中通过键值队列中的数据引导程序的流程 #i nclude msp430x14x.h unsigned char keybuff ; unsigned char keypoint=0; void delay(int v) { while(v!=0)v--; } unsigned char key(void) { unsigned char x=0xff; P1DIR=0X0F; P1OUT=0
[单片机]
pic16f877a对24c01的读写程序
#i nclude p IC .h #i nclude string.h #define uchar unsigned char #define uint unsigned int static volatile unsigned char a CC @ 0x20; //发收数据暂存器 static volatile bit acc0 @ (unsigned)&acc*8+0; //接收 static volatile bit acc7 @ (unsigned)&acc*8+7; //发送 static volatile unsigned char err @ 0x21; // static vo
[单片机]
再造STM32---第十九部分:I2C—读写 EEPROM
本章参考资料:《STM32F4xx 参考手册》、《STM32F4xx 规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》及《I2C 总线协议》。 若对 I2C 通讯协议不了解,可先阅读《I2C 总线协议》文档的内容学习。若想了解SMBUS,可阅读《smbus20》文档。 关于 EEPROM 存储器,请参考“ 常用存储器介绍”章节, 实验中的 EEPROM,请参考其规格书《AT24C02》来了解。 19.1 I2C协议简介: I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩
[单片机]
再造STM32---第十九部分:I2C—<font color='red'>读写</font> EEPROM
MSP430F5529LP+CC3000学习心得(一)——与AP的连接
设备:MSP430F5529LP+CC3000 BoosterPack EVM SDK:CC3000 SDK_V1.11 、android下smart Config APP Patch:PatchProgrammerMSP430F5529LP-7.11.7.13.19 开发环境:CCS 5.4.0 第一步:硬件连接。 第二步:对F5529LP进行Patch programmer。 导入C:tiPatchProgrammerMSP430F5529LP-7.11.7.13.19Patch Programmer SourcePatch Programmer CCS目录下的三个工程CC3000 SPi、CC3000
[单片机]
<font color='red'>MSP430</font>F5529LP+CC3000学习心得(一)——与AP的连接
基于MSP430的车体自动调平系统
  目前,调平技术都已逐步成熟,但随着武器机动性要求的不断提高,也相应提高了对调平时间和调平精度的要求,与之相适应的自动控制调平技术也不断发展。自动调平系统的发展方向主要是:   (1)精确性:系统的精确性主要取决于倾角传感器的分辨率。随着新结构、新材料、新工艺和新技术在高精度倾角传感器中的应用,倾角传感器的性能大幅度地提高了,倾角传感器正从传统的液体摆、气体摆原理向伺服加速度及力平衡、重力摆原理发展,倾角传感器的分辨率已达到0.001度或更高。   (2)稳定性:为了适应现代武器高机动性和快速反应能力的需求,要求车载平台有更高的稳定性,采用机电伺服系统代替电液伺服系统,加上单片机系统可靠性与抗干扰技术的不断发展,奠定了单片机系统
[单片机]
基于<font color='red'>MSP430</font>的车体自动调平系统
MSP430单片机对AT24C64的读写操作子程序
/*----------------------------------- MSP430单片机对AT24C64的读写操作子程序 来源:晖创电子网www.schuitron.comMSP430程序 ---------------------------------------*/ #ifndef_I2C_H #define_I2C_H #defineSDA_1P4OUT|=0x02//SDA=1 #defineSDA_0P4OUT&=~0x02//SDA=0 #defineSCL_1P4OUT|=0x01//SCL=1 #defineSCL_0P4OUT&=~0x01//SCL=0 #defineSDA_INP4
[单片机]
基于MSP430的嵌入式DTMF拨号解码器方案设计
本文介绍了一种基于MSP430的嵌入式DTMF拨号解码器实现方案。DTMF拨号部分使用4根I/O线的电阻网络,配合软件产生DTMF信号。利用MSP430F133内置的ADC,并采用改进的Goertzel算法,实现DTMF信号的实时解码。该方案成本低、性能可靠,已经得到了实际应用。 DTMF信号 DTMF信号是将拨号盘上的0~9、A~D及*/E、#/F共16个字符,用音频范围的8个频率来表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号由来自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如图1所示。 根据CCITT Q.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号
[单片机]
基于<font color='red'>MSP430</font>的嵌入式DTMF拨号解码器方案设计
51单片机如何实现对CF卡的读写
  引言   由于CF卡(Compact Flash Card)具有容量大、体积小、高性能、携带方便等优点,而且读写速度快,可与多种电脑操作系统平台兼容,因此在数据采集系统中的数据记录或与PC机之间的数据转存多采用CF卡。为了在PC机中能方便地进行数据处理,在下位机端必须采用一种标准的格式组织数据,即将数据按照Windows标准文件格式写入,在PC机端通过读卡器将写入CF的内容以标准文件形式读出。Windows标准文件格式有FAT、FAT32和NTFS。考虑到广泛使用的Windows 98系统的CF卡的容量等因素,通常采用FAT(File Allocation Table)文件系统。单片机系统对CF卡的读写,就是从底层对它进行直接操
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved