[求助] 430单片机的flash 读写操作

pengbiao1210   2015-8-24 10:10 楼主
当我用串口软件向430单片机flash中写入10时(假设理解成10秒钟),然后再把10从flash中取出来。但问题出现了,按理说写入flash的数据10两个字节应该被写入0x1080和0x1081两个地址了,读出数据也是从0x1080开始读出,但现在我的目的是:比如我把10要写到flash segA的0x1080-0x1085这6个地址,没有数据的地址写0,但要保证读出来的数据就是10,请问该怎么写入write_segmentA(uchar *vaule)是一个向起始1080地址写数据的程序

回复评论 (4)

一般情况写flash都是三个参数,1.地址(也就是从哪些)2.要写的数据(定义到一个数组当中)3.写多长。注意写之前先擦一下。有些地方是无法写的!!!!!所以flash的空间分配要明白,可以从编译器的map中看。
点赞  2015-8-24 15:26
引用: sbjy3814 发表于 2015-8-24 15:26
一般情况写flash都是三个参数,1.地址(也就是从哪些)2.要写的数据(定义到一个数组当中)3.写多长。注意 ...

当我用串口发送500时,也就是两个字节,从RXBUF0中读到数组中,数组是以什么形式存在,怎么样表示的
点赞  2015-8-24 18:15
  1. //这是我在F5529上边用的代码
  2. //您可以参考一下

  3. void WriteFlashSettings(uint16_t Data, uint16_t Address)
  4. {
  5.     uint16_t * Flash_ptr;                   // Initialize Flash pointer
  6.     uint16_t Flash_Contents[16];            // Store Contents of Flash before Programming
  7.     uint8_t i;

  8.     Flash_ptr = (uint16_t *)(0x1880);       // Info C

  9.     for (i = 0; i < 16; i++)                // We know that we will only use > 8 variables in Info C
  10.     {
  11.         Flash_Contents[i] = *Flash_ptr;     // Read a word from flash
  12.         if (Flash_ptr == (uint16_t *)Address)
  13.             Flash_Contents[i] = Data;
  14.         *Flash_ptr++;
  15.     }


  16.     Flash_ptr = (uint16_t *)(0x1880);       // Info C
  17.     FCTL3 = FWKEY;                          // Clear Lock bit
  18.     FCTL1 = FWKEY + ERASE;                  // Set Erase bit
  19.     *Flash_ptr = 0;                         // Dummy write to erase Flash seg
  20.     FCTL1 = FWKEY + WRT;                    // Set WRT bit for write operation

  21.     for (i = 0; i < 16; i++)
  22.     {
  23.         *Flash_ptr++ = Flash_Contents[i];   // Write a word to flash
  24.     }

  25.     FCTL1 = FWKEY;                          // Clear WRT bit
  26.     FCTL3 = FWKEY + LOCK;                   // Set LOCK bit
  27. }
点赞  2015-8-24 23:03
请指教我的新帖,标题是:
02篇-单片机的存储空间
谢谢
我看到 楼上的代码,也受教了。
点赞  2015-8-26 17:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复