当前位置: 首页 > news >正文

STM32 FLASH 读写数据

1. 《STM32 中文参考手册》,需要查看芯片数据手册,代码起始地址一般都是0x8000 0000,这是存放整个项目代码的起始地址

在这里插入图片描述

2. 编译信息查看代码大小,修改代码后第一次编译后会有这个提示信息

2.1 修改代码后编译,会有提示信息 KEIL,计算出来代码总共 61076 Byte

在这里插入图片描述

2.2 如果什么都没有改,直接编译是没有这个提示信息的

在这里插入图片描述

3. 定义Flash 保存数据的起始地址

0x08000000 是存放代码的起始地址,我们保存的数据要和代码分开,放在代码区域后面,所以后面加了个80000, 比keil 编译里面算出来的和要大将近2 万个字节,预留量很大,后期增加代码也基本不会覆盖到这里来

#define PAGE_ADDR        (0x08000000 + 80000)

4. Flash 读接口, 从地址 PAGE_ADDR 处读取num 个16位的数据,保存到数组data 里面

u8 MemReadByte(u16 *data, u16 num)
{u16 *temp_addr = (u16*)(PAGE_ADDR);while(num--){*data++= *temp_addr++;}return 1;
}

5. Flash 写接口,将16 位的数组 写入到Flash里面, 从地址PAGE_ADDR 开始写,写num 个数字

u8 MemWriteByte(u16 *data, u16 num)
{FLASH_Status temp_stat;u32 temp_addr = PAGE_ADDR;FLASH_Unlock();temp_stat = FLASH_ErasePage(PAGE_ADDR);if(temp_stat != FLASH_COMPLETE){FLASH_Lock();return 0;}    while(num--){temp_stat = FLASH_ProgramHalfWord(temp_addr, *data);if(temp_stat != FLASH_COMPLETE){FLASH_Lock();return 0;}temp_addr += 2;data++;}FLASH_Lock();return 1;    
}

6. keil 选择芯片型号

在这里插入图片描述

7. 在keil 里面查看对应芯片的Flash 大小

在这里插入图片描述

http://www.lryc.cn/news/132233.html

相关文章:

  • excel功能区(ribbonx)编程笔记--1 初识功能区
  • 电脑远程接入软件可以进行文件传输吗?快解析内网穿透
  • react-native-webview使用postMessage后H5不能监听问题(iOS和安卓的兼容问题)
  • 通过LD_PRELOAD绕过disable_functions
  • Python批量爬虫下载文件——把Excel中的超链接快速变成网址
  • Crimson:高性能,高扩展的新一代 Ceph OSD
  • 【websocket】websocket-client 与 websockets
  • Qt快速学习(一)--对象,信号和槽
  • Qt6之如何为QDialog添加最大化和最小化按钮
  • 攻防世界-warmup
  • 02__models
  • MyBatis入门配置及CURD实现
  • 《游戏编程模式》学习笔记(五)原型模式 Prototype Pattern
  • ansible案列之LNMP分布式剧本
  • React2023电商项目实战 - 1.项目搭建
  • 数据库连接池(c3p0和德鲁伊)
  • ARM--day6(实现字符、字符串收发的代码和现象,分析RCC、GPIO、UART章节)
  • 2023牛客暑期多校训练营9 B.Semi-Puzzle: Brain Storm
  • mysql中的窗口函数
  • 【双指针】经典数组双指针题LeetCode
  • 极智嘉x吉利汽车 x京东物流,引领汽车行业智慧物流新变革!
  • RK3588平台开发系列讲解(AI 篇)RKNN C API 详细说明
  • 【基础】Android Handler
  • c语言实现MD5算法
  • Apache Doris 2.0.0 特性分析
  • 如何做H5性能测试?
  • 【Docker】Docker Desktop配置资源:cpu、内存等(windows环境下)
  • 8.2.tensorRT高级(3)封装系列-内存管理的封装,内存的复用
  • Keepalived入门指南:实现故障转移和负载均衡
  • cuOSD(CUDA On-Screen Display Library)库的学习