当前位置:首页 > 单片机 > 单片机
[导读] FLASH型的MSP430单片机都带有信息存储器SegmengA及SegmentB,SegmengA及SegmentB各有128字,SegmentB的地址是:0x01000h到0x107F,SegmentA的地址是:0x01080h到0x010FFh。程序被写入MSP430之后,程序通

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

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

  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. //读取片内存储的数据

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

  20. charReadSegment_256(charindex)

  21. {

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

  23. return*flash_ptr;

  24. }

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

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

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

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

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

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

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

  32. {

  33. charbuffer[SegmentSize],i=0;

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

  35. //先读取原FLASH数组

  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. //把整个数组都写入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. }


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中国北京(2025年9月10日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码 603986)亮相于深圳国际会展中心举办的第26届中国国际光电博览会(展位号:12C12),全面展示GD25 SPI...

关键字: 光通信 MCU Flash

在嵌入式系统中,Flash存储器因其非易失性、高密度和低成本特性,成为代码存储和关键数据保存的核心组件。然而,MCU驱动Flash读写时,开发者常因对硬件特性理解不足或操作流程疏忽,陷入性能下降、数据损坏甚至硬件损坏的陷...

关键字: MCU驱动 Flash

在人工智能的发展历程中,我们往往认为更多的训练、更复杂的数据能让 AI 变得更加智能。然而,近期一些研究却揭示了令人意外的现象:对小型 AI 语言模型进行数学训练时,过度训练可能会导致其表现急剧下降,甚至出现 “变笨”...

关键字: 人工智能 数据 模型

I2C 总线的起始条件和终止条件通常由主机产生。起始条件是在 SCL 高电平时,SDA 从高电平转为低电平;而终止条件则是当 SCL 高电平时,SDA 从低电平转化为高电平。这两个条件的准确识别对于 I2C 通信的正确启...

关键字: I2C 总线 数据 协议

在AI数据产业中,数据精准度=验收合格数量/全部数量,这意味极高的精准度不仅要满足一些客观标准,还需要与AI项目方的需求深度契合,通过基于需求的验收过程。

关键字: AI 数据

基于使用困难报告系统(SDRS)对钻石DA20飞机的故障数据进行分析 。基于SDRS系统收集到的数据 , 结合故障分类方法 ,对钻石DA20飞机的不同故障进行研究 ,并提出相应的解决措施 ,有利于提高钻石DA20飞机机队...

关键字: SDRS DA20飞机 故障 数据

在当今数字化时代,数据如同流淌在信息高速公路上的血液,驱动着各个领域的创新与发展。而在嵌入式视觉领域,高速数据传输正扮演着越来越关键的角色,它不仅是实现实时、精准视觉感知的基础,更是开启未来智能应用无限可能的钥匙。

关键字: 数据 视觉 传输
关闭