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.

MSP430fr5739的FLASH操作问题

Other Parts Discussed in Thread: MSP430FR5739

假如我想保存一部分数据到MSP430FR5739的内部FRAM中,请问我该如何操作。

另外,我看库函数使用手册中没有从FRAM中读取数据的函数,那假如我把一部分数据

写入FRAM,然后再读出来,我该怎么操作呢??

有没有相关的代码??谢谢。

  • MSP430WARE下面有写FRAM例程,如下。

    读的话比较简单,定义指针直接指向这个地址就可以。

    #include <msp430.h>

    void FRAMWrite(void);

    unsigned char count = 0;
    unsigned long *FRAM_write_ptr;
    unsigned long data;

    #define FRAM_TEST_START 0xCA00


    int main(void)
    {
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    // Configure MCLK for 8MHz operation
    CSCTL0_H = 0xA5;
    CSCTL1 |= DCOFSEL0 + DCOFSEL1; // Set max. DCO setting
    CSCTL2 = SELA_0 + SELS_3 + SELM_3; // ACLK = VLO
    CSCTL3 = DIVA_0 + DIVS_1 + DIVM_1; // MCLK = SMCLK = DCO/2

    // Turn off temp sensor
    REFCTL0 |= REFTCOFF;
    REFCTL0 &= ~REFON;

    // Turn on LED
    P1DIR |= BIT0;
    // Initialize dummy data
    data = 0x11111111;

    while(1)
    {
    data += 0x00010001;
    FRAM_write_ptr = (unsigned long *)FRAM_TEST_START;
    FRAMWrite(); // Endless loop
    count++;
    if (count > 100)
    {
    P1OUT ^= 0x01; // Toggle LED to show 512K bytes
    count = 0; // ..have been written
    data = 0x11111111;
    }

    }

    }


    void FRAMWrite (void)

    {
    unsigned int i=0;

    for ( i= 0; i<128; i++)
    {
    *FRAM_write_ptr++ = data;
    }

    }

  • 楼主你好,你想复杂了。对FRAM的操作和对RAM的操作基本上是一样的,直接读写就可以。

  • 这个系统掉电,存储的数据会丢失
  • 只要把数据存储在fram上,掉电是不会丢失的。而且fram的读写就像ram的操作一样简单。