[应用相关] STM32内嵌FLASH与板载FLASH

[复制链接]
我思故我在12345 发表于 2015-4-24 21:59 | 显示全部楼层
fhguo1990 发表于 2015-4-24 21:58
我把你例子里生成的TEST.sct替代了Sample里的target.lin,这样程序能编译成功并仿真起来。
我这个程序尝试 ...

这么有意思...呵呵.
 楼主| fhguo1990 发表于 2015-4-24 21:59 | 显示全部楼层
这还有意思啊 呵呵  
我都折腾很久了,就是希望用FLASH存点数据。

现在还只能读到FALSH里Hex的数据,写的功能完全没实现。说明我用的\Keil\ARM\Flash\STM32F10x 一点作用都没起到啊。
我思故我在12345 发表于 2015-4-24 22:00 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
 楼主| fhguo1990 发表于 2015-4-24 22:00 | 显示全部楼层
状况N多啊,我都不好意思说了
 楼主| fhguo1990 发表于 2015-4-24 22:00 | 显示全部楼层
如果在main的最开始的时候去操作,是可以读写的。
但是一旦Stm32_Clock_Init(), 或者delay_init()之后,就不行了 呵呵
有时候执行到下面的时候就hold住了,真是奇怪啊
// Unlock Flash     
  FLASH->KEYR = FLASH_KEY1;
  FLASH->KEYR = FLASH_KEY2;
 楼主| fhguo1990 发表于 2015-4-24 22:01 | 显示全部楼层
我这个程序尝试着读写Flash,结果发现我只能读到Flash里面存有Hex数据的地方。其他地方取地址读到的都是0,但是事实上我通过ISP软件通过串口在PC端读到的Flash里面除了Hex数据外,其他地方的值应该是0xFF.   
******

解决这个问题方法是:将开发环境“Flash Download/Download Function”里面"Erase Sectors"改成"Erase Full Chip",这样就成访问Flash 0x08000000-0x0801FFFF 所有空间了。
 楼主| fhguo1990 发表于 2015-4-24 22:01 | 显示全部楼层
刚刚继续在实验\Keil\ARM\Flash\STM32F10x 的代码,结果可能不小心把那个寄存器配错了,结果搞的仿真都没法下载Hex了,提示“无效的Flash,请断电再试”。幸好我通过USB PC2303转串口将Flash全部擦了一遍,Flash又工作了。
呵呵,寄存器的东西不敢再搞了。
发现MDK里还有库函数的版本,使用stm32f10x_flash.c的接口,成功实现读写Flash。
这是我第一次写例子尝试使用STM32。
把这些坎坷历程写出来,分享给大家
 楼主| fhguo1990 发表于 2015-4-24 22:02 | 显示全部楼层
我想问一下
为何在EXAMPLE里面
PAGE SIZE 定义为 uint16_t 0*400 ?
 楼主| fhguo1990 发表于 2015-4-24 22:02 | 显示全部楼层
#define  StartAddress  ((uint32_t)0x801D800)
  #define  EndAddress  ((uint32_t)0X801E000)
  #define PageSize  ((uint16_t)0x400)
  uint16_t Counter =0x00;
  uint32_t NumberOfPage = 0x00;
  uint32_t Page =0x00;
  FLASH_Unlock();
  NumberOfPage = ((EndAddress - StartAddress)/PageSize);
  for (Counter = 0;Counter<NumberOfPage;Counter++)
    {
        FLASH_ErasePage(StartAddress + Page);
        Page += 400;
        Counter ++ ;
    }

可是我ERASE不到?
为什么?>
我思故我在12345 发表于 2015-4-24 22:03 | 显示全部楼层
fhguo1990 发表于 2015-4-24 22:02
#define  StartAddress  ((uint32_t)0x801D800)
  #define  EndAddress  ((uint32_t)0X801E000)
  #defin ...

我也不知道为什么哦。
 楼主| fhguo1990 发表于 2015-4-24 22:04 | 显示全部楼层
我思故我在12345 发表于 2015-4-24 22:03
我也不知道为什么哦。

可是这个方法是对的吧?
我思故我在12345 发表于 2015-4-24 22:04 | 显示全部楼层
fhguo1990 发表于 2015-4-24 22:04
可是这个方法是对的吧?

MDK自带的例子一般是没问题的了。
598330983 发表于 2015-4-25 00:04 来自手机 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部