你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【Nucleo板开发日志】+ FLASH写测试

[复制链接]
wudianjun2001 发布时间:2014-8-31 13:42
STM32F302R8T6的FLASH为64K,地址从0x0800 0000~0x0800 FFFF,分成32页,每页2K字节。
第00页    0x0800 0000~0x0800 07FF         2KB
第01页    0x0800 0800~0x0800 0FFF         2KB
第02页    0x0800 1000~0x0800 17FF         2KB
第03页    0x0800 1800~0x0800 1FFF         2KB
第04页    0x0800 2000~0x0800 27FF         2KB
第05页    0x0800 2800~0x0800 2FFF         2KB
第06页    0x0800 3000~0x0800 37FF         2KB
第07页    0x0800 3800~0x0800 3FFF         2KB
第08页    0x0800 4000~0x0800 47FF         2KB
第09页    0x0800 4800~0x0800 4FFF         2KB
第10页    0x0800 5000~0x0800 57FF         2KB
第11页    0x0800 5800~0x0800 5FFF         2KB
第12页    0x0800 6000~0x0800 67FF         2KB
第13页    0x0800 6800~0x0800 6FFF         2KB
第14页    0x0800 7000~0x0800 77FF         2KB
第15页    0x0800 7800~0x0800 7FFF         2KB
第16页    0x0800 8000~0x0800 87FF         2KB
第17页    0x0800 8800~0x0800 8FFF         2KB
第18页    0x0800 9000~0x0800 97FF         2KB
第19页    0x0800 9800~0x0800 9FFF         2KB
第20页    0x0800 A000~0x0800 A7FF         2KB
第21页    0x0800 A800~0x0800 AFFF         2KB
第22页    0x0800 B000~0x0800 B7FF         2KB
第23页    0x0800 B800~0x0800 BFFF         2KB
第24页    0x0800 C000~0x0800 C7FF         2KB
第25页    0x0800 C800~0x0800 CFFF         2KB
第26页    0x0800 D000~0x0800 D7FF         2KB
第27页    0x0800 D800~0x0800 DFFF         2KB
第28页    0x0800 E000~0x0800 E7FF         2KB
第29页    0x0800 E800~0x0800 EFFF         2KB
第30页    0x0800 F000~0x0800 F7FF         2KB
第31页    0x0800 F800~0x0800 FFFF         2KB
    对FLASH块进行写操作之前必须先擦除,对应位置只能1->0改写而不能0->1改写,所以必须先擦除,擦除后所有单元值为0xFF。
 
这里只给出FLASH写操作的代码
#define IAP_ADDR  0x0800F000              //写起始地址
1.jpg
进入debug,打开内存窗口,可以看到FLASH的情况。
2.jpg
读操作很简单,这里就不描述了。
收藏 评论4 发布时间:2014-8-31 13:42

举报

4个回答
wudianjun2001 回答时间:2014-8-31 13:43:57

RE:【Nucleo板开发日志】+ FLASH写测试

/******************************************************************************
* º¯ÊýÃû³Æ£ºFlash_Test
* º¯Êý¹¦ÄÜ£ºFLASH IAPд²âÊÔ
* Èë¿Ú²ÎÊý£ºÎÞ
* ³ö¿Ú²ÎÊý£ºÎÞ
* ÐÞ¸Äʱ¼ä£º2014-08-31
******************************************************************************/
void Flash_Test (void)
{
    uint32_t i = 0;
    //uint8_t Read_Buff[256];
    uint8_t Write_Buff[256];                                //дÊý¾Ý»º³åÇø
    uint32_t dat;
    FLASH_Status Status = FLASH_COMPLETE;                   //״̬λ
    for (i = 0; i < 256; i ++)                              //»º³åÇø³õʼ»¯
    {
        Write_Buff = i;
    }
   
    FLASH_SetLatency (FLASH_Latency_1);                     //ÉèÖòÙ×÷µÈ´ýÖÜÆÚ
    FLASH_HalfCycleAccessCmd (ENABLE);                      //ʹÄÜFLASH°ëÖÜÆÚ·ÃÎÊ
    FLASH_PrefetchBufferCmd (ENABLE);                       //ʹÄÜԤȡָ»º³åÇø
   
    FLASH_Unlock ();                                        //½âËø
    Status = FLASH_ErasePage (IAP_ADDR);                    //²Á³ýÒ³
    for (i = 0; i < 256; i += 4)
    {
        //dat = Write_Buff
wudianjun2001 回答时间:2014-8-31 13:44:47

RE:【Nucleo板开发日志】+ FLASH写测试

字体不太对,从编辑器里拷出来汉字就成乱码了
wudianjun2001 回答时间:2014-8-31 13:45:14

RE:【Nucleo板开发日志】+ FLASH写测试

/******************************************************************************
* 函数名称:Flash_Test
* 函数功能:FLASH IAP写测试
* 入口参数:无
* 出口参数:无
* 修改时间:2014-08-31
******************************************************************************/
void Flash_Test (void)
{
    uint32_t i = 0;
    //uint8_t Read_Buff[256];
    uint8_t Write_Buff[256];                                //写数据缓冲区
    uint32_t dat;
    FLASH_Status Status = FLASH_COMPLETE;                   //状态位
    for (i = 0; i < 256; i ++)                              //缓冲区初始化
    {
        Write_Buff = i;
    }
   
    FLASH_SetLatency (FLASH_Latency_1);                     //设置操作等待周期
    FLASH_HalfCycleAccessCmd (ENABLE);                      //使能FLASH半周期访问
    FLASH_PrefetchBufferCmd (ENABLE);                       //使能预取指缓冲区
   
    FLASH_Unlock ();                                        //解锁
    Status = FLASH_ErasePage (IAP_ADDR);                    //擦除页
    for (i = 0; i < 256; i += 4)
    {
        //dat = Write_Buff
霹雳之火 回答时间:2014-8-31 14:25:28

RE:【Nucleo板开发日志】+ FLASH写测试

第一篇分析flash读写,好贴,

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版