欢迎来到天天文库
浏览记录
ID:39918507
大小:56.00 KB
页数:3页
时间:2019-07-15
《MSP430读写片内FLASH保存数据》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、FLASH型的MSP430单片机都带有信息存储器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被写入MSP430之后,程序通过SegmengA及SegmentB就可以保存不掉电数据。注意:每次程序烧写到MSP430时,SegmengA及SegmentB都会被擦除!接下来贴出本文的程序代码,以及程序写入信息存储器之后的FLASH数据:viewplaincopytoclip
2、boardprint?1#include23voidWriteSegment_256(charindex,char*value,charsize);4charReadSegment_256(charindex);56voidmain(void)7{8WDTCTL=WDTPW+WDTHOLD;//Stopwatchdogtimer9FCTL2=FWKEY+FSSEL0+FN0;//MCLK/2forFlashTimingGenerator1011charstr1[3]={0xAA,0xBB,0xCC}
3、;1213WriteSegment_256(0,str1,3);1415for(chari=0;i<255;i++)16_NOP();1718charstr2[3]={0xBB,0xAA,0xCC};19WriteSegment_256(0,str2,3);201}23#defineSegmentStart0x01000//Segment=0x01000~0x010FF4#defineSegmentSize255//SegmentA+SegmentB=25656//********************************
4、*************************7//读取片内存储的数据8//*********************************************************9charReadSegment_256(charindex)10{11char*flash_ptr=((char*)SegmentStart)+index;12return*flash_ptr;13}1415//*****************************************************16//把数组写入数
5、据到片内FLASH,必须先全部擦除再写入17//参数index:保存数组的位置18//参数value:数组的指针19//参数size:数组的大小20//*****************************************************21voidWriteSegment_256(charindex,char*value,charsize)22{23charbuffer[SegmentSize],i=0;24char*flash_ptr=(char*)SegmentStart;2526//先读取原FLASH
6、数组27for(i=0;i7、;i++)//修改原数组39buffer[index+i]=value[i];40for(i=0;i
7、;i++)//修改原数组39buffer[index+i]=value[i];40for(i=0;i
此文档下载收益归作者所有