STM32(三十四)向flash中写64字数据

字节:8位 半字:16位 字:32位 双字:64位   uint32_t i;  uint64_t i;  word i;  dword i; 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "flash.h"
//功能:向第四扇区写数据
void Flash_Init(void)
{
    uint32_t data[64] = {0};//64字
    uint32_t i=0;
    for(i=0;i<64;i++)
    {
        data[i] = 0x00100000 +i;
    }
    //解除写保护
     FLASH_Unlock();
     
    //清除上一次出现的错误码
    FLASH_ClearFlag(FLASH_FLAG_EOP|FLASH_FLAG_OPERR|FLASH_FLAG_WRPERR
                    |FLASH_FLAG_PGAERR|FLASH_FLAG_PGPERR|FLASH_FLAG_PGSERR);   
     
     
    //擦除第4号扇区,每次擦除一个字(32bit)
     if(FLASH_EraseSector(FLASH_Sector_4, VoltageRange_3) != FLASH_COMPLETE)
     {
         printf("flash erase error!\r\n");
         while(1);
     }
     for(i=0;i<64;i++)
     {  
        //在4号扇区写内容  32bit = 4个字节
         if (FLASH_ProgramWord(0x08010000+4*i, data[i]) != FLASH_COMPLETE)
         {
             printf("flash program error!\r\n");
         }
    }
     //打开写保护
     FLASH_Lock();
     //读取数据
    for(i=0;i<64;i++)
    {
        printf("0x%08X ", *(volatile unsigned int *)(0x08010000+4*i) );
    }
}

  

 

posted @   轻轻的吻  阅读(636)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-05-29 STM32(十三)SPI-读写串行flash
2018-05-29 linux批量替换文件内容3种方法(perl,sed,shell)
2018-05-29 条件表达式
2018-05-29 a.py
点击右上角即可分享
微信分享提示