This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FE4272:MSP430FE4272

Guru**** 2380860 points
Other Parts Discussed in Thread: MSP430FE4272
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/601734/msp430fe4272-msp430fe4272

器件型号:MSP430FE4272

你(们)好

我的英语不好

本文基于 Google Translator、因此请了解您的语法是否奇怪。

我将使用 MSP430的闪存。  但我并不完全理解如何使用它。

我每10秒写入一次数据、我认为由于编程/擦除耐久性、存在问题。

我按2个字节顺序写入闪存、当32KB 已满时、我将其删除并尝试写入新数据。

MSP430闪存的编程/擦除寿命是100、000倍。

 msp430fe4272的闪存地址被称为0x8000 ~ 0xFFFF。 对吗?

2.我不知道当我擦除一个段或擦除整个段时、100、000次的次数是否会增加。

请查看此源代码。

void flash_erase (int *addr)

   _DINT ();//禁用中断。 否则、这很重要、
   //可能发生中断时正在进行闪存操作
   //系统崩溃。
   while (Busy & FCTL3);//检查是否正在使用闪存
   FCTL2 = FWKEY + FSSEL_1 + FN3;// Clk = SMCLK/4
   FCTL1 = FWKEY + ERASE;//设置擦除位
   FCTL3 = FWKEY;//清除锁定位
   *addr = 0;//虚拟写入来擦除闪存段
   while (Busy & FCTL3);//检查是否正在使用闪存
   FCTL1 = FWKEY;//清除 WRT 位
  FCTL3 = FWKEY + LOCK;//设置 LOCK 位
  _EINT();

上面的源代码是否正在擦除一个段? 或删除整个句段?

请告诉我如何一次删除整个句段。

并且、

定期写入2个字节的数据时、请提供一种有效的方法或示例。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    对于一个段与整个段、您的意思是什么?
    您是指整个存储器(0x8000-0xFFFF)吗?
    为您的应用程序写入 RAM 而不是闪存是否有意义?
    在这里、您不受擦除周期的限制。

    Lukas
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。

    这是《MSP430x4xx 系列用户指南》。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如我在 代码中看到的那样、MERAS 和 GMERAS 位都没有设置、因此只会擦除存储器的一个完整段。