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

【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读写,好贴,

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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