日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] FLASH型的MSP430單片機(jī)都帶有信息存儲(chǔ)器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被寫(xiě)入MSP430之后,程序通

FLASH型的MSP430單片機(jī)都帶有信息存儲(chǔ)器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被寫(xiě)入MSP430之后,程序通過(guò)SegmengA及SegmentB就可以保存不掉電數(shù)據(jù)。注意:每次程序燒寫(xiě)到MSP430時(shí),SegmengA及SegmentB都會(huì)被擦除!

接下來(lái)貼出本文的程序代碼,以及程序?qū)懭胄畔⒋鎯?chǔ)器之后的FLASH數(shù)據(jù):

  1. #include

  2. voidWriteSegment_256(charindex,char*value,charsize);

  3. charReadSegment_256(charindex);

  4. voidmain(void)

  5. {

  6. WDTCTL=WDTPW+WDTHOLD;//Stopwatchdogtimer

  7. FCTL2=FWKEY+FSSEL0+FN0;//MCLK/2forFlashTimingGenerator

  8. charstr1[3]={0xAA,0xBB,0xCC};

  9. WriteSegment_256(0,str1,3);

  10. for(chari=0;i<255;i++)

  11. _NOP();

  12. charstr2[3]={0xBB,0xAA,0xCC};

  13. WriteSegment_256(0,str2,3);

  14. }

  15. #defineSegmentStart0x01000//Segment=0x01000~0x010FF

  16. #defineSegmentSize255//SegmentA+SegmentB=256

  17. //*********************************************************

  18. //讀取片內(nèi)存儲(chǔ)的數(shù)據(jù)

  19. //*********************************************************

  20. charReadSegment_256(charindex)

  21. {

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

  23. return*flash_ptr;

  24. }

  25. //*****************************************************

  26. //把數(shù)組寫(xiě)入數(shù)據(jù)到片內(nèi)FLASH,必須先全部擦除再寫(xiě)入

  27. //參數(shù)index:保存數(shù)組的位置

  28. //參數(shù)value:數(shù)組的指針

  29. //參數(shù)size:數(shù)組的大小

  30. //*****************************************************

  31. voidWriteSegment_256(charindex,char*value,charsize)

  32. {

  33. charbuffer[SegmentSize],i=0;

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

  35. //先讀取原FLASH數(shù)組

  36. for(i=0;i

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

  38. //擦除FLASH,必須

  39. FCTL1=FWKEY+ERASE;//SetErasebit

  40. FCTL3=FWKEY;//ClearLockbit

  41. *flash_ptr=0;//DummywritetoeraseFlashsegment

  42. //把整個(gè)數(shù)組都寫(xiě)入FLASH

  43. FCTL1=FWKEY+WRT;//SetWRTbitforwriteoperation

  44. for(i=0;i

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

  46. for(i=0;i

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

  48. FCTL1=FWKEY;//ClearWRTbit

  49. FCTL3=FWKEY+LOCK;//SetLOCKbit

  50. }


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉