目录

  • 一、Flash原理
  • 二、创建STMcube工程
    • 1、选择芯片
    • 2、配置定时器
    • 3、打开外部时钟
    • 4、配置管脚
    • 5、设置堆栈大小
  • 三、在keil工程下的配置
  • 三、keil工程调试
    • 1、STlink连线说明
    • 2、keil配置
    • 3、调试
  • 四、参考链接

一、Flash原理

不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节。市面上 STM32F1 开发板使用的芯片是 STM32F103系列,其 FLASH 容量一般为 512K 字节,属于大容量芯片

Flash的编程原理都是只能将1写为0,而不能将0写为1,所以在进行Flash编程前,必须将对应的块擦除,即将该块的每一位都变为1,块内所有字节变为0xFF。

STM32F1 的闪存(Flash)模块:主存储器、信息块、闪存存储器接口寄存器

主存储器。该部分用来存放代码和数据常数(如 const 类型的数据)。对于大容量产品,其被划分为 256 页,每页 2K 字节。注意,小容量和中容量产品则每页只有 1K 字节。

信息块。该部分分为 2 个小部分,其中启动程序代码,是用来存储 ST 自带的启动程序,用于串口下载代码,当 BOOT0 接 V3.3, BOOT1 接 GND 的时候,运行的就是这部分代码。用户选择字节,则一般用于配置写保护、读保护等功能。

闪存存储器接口寄存器。该部分用于控制闪存读写等,是整个闪存模块的控制机构。对主存储器和信息块的写入由内嵌的闪存编程/擦除控制器(FPEC)管理;编程与擦除的高电压由内部产生。

在执行闪存写操作时,任何对闪存的读操作都会锁住总线,在写操作完成后读操作才能正确地进行;既在进行写或擦除操作时,不能进行代码或数据的读取操作。

下图是Flash的一些主要特性:

二、创建STMcube工程

1、选择芯片

芯片就选择我们所用的STM32F103C8:

2、配置定时器

3、打开外部时钟


配置时钟:

4、配置管脚

对应外设c8t6本身设计好的PC13 LED灯:

5、设置堆栈大小

三、在keil工程下的配置

将事先准备好的flash.c 及flash.h加入到工程中:

添加代码如下图所示:


编译成功:

三、keil工程调试

1、STlink连线说明

接线:

ST-LINK STM32
SWCLK/TCK SWCLK/TCK
SWDIO/TMS SWDIO/TMS
GND GND
VCC VCC


在电脑上下载好响应的ST-Link驱动,上电,可以看到STLink在电脑上显示出来了,可以说明ST-Link 驱动已经安装完成。接下来只需要在 mdk 工程里面配置一下 ST-Link即可。

2、keil配置

点开魔法棒进行配置,在 Debug 选项卡中,选择ST-Link Debugger。

如果右侧IDCODE有显示的话就是连接成功了:

点击load下载程序到板子上:

3、调试

一直连接上板子然后进入debug,千万不要选择仿真调试,点击视图—>观测窗口—>随便选择一个窗口,紧接着在右下角的Memory1窗口中输入我们存储数据的地址0x0800C000,点击全速运行,可以看到板子上的PC13 LED亮起,然后Memory 1窗口中出现之前存储的数据,证明数据成功写入:

断电之后再次上电进行调试,可以看到上次写入的数据还在其中,证明已经将数据写入到flash中。

四、参考链接

STM32 进阶教程 13 – FLASH的读写操作
STM32内部Flash读写问题

Flash地址空间的数据读取相关推荐

  1. STM32c8t6Flash地址空间的数据读取

    STM32F103c8t6Flash地址空间的数据读取 一.项目任务 二.Flash的读写操作 1.创建STM32CubeMX工程文件 2.代码修改 3.连接STlink调试 (1)程序烧录 (2)调 ...

  2. STM32利用flash读取音频数据读取与DAC播放

    目录 一.博客内容 二.Flash地址空间的读取 2.1 Flash原理 2.2 软.硬件准备 2.3 利用CubeMX建立工程 2.4 工程代码 2.5 ST-Link的使用 ​2.6 仿真调试 三 ...

  3. STM32F103基于片内flash的数据读取与音乐播放

    目录 一.前言 二.题目要求 三.什么是片内flash 四.闪存的编程和擦除 五.基于flash的数据读取 1.工程创建 2.修改代码 3.烧录 4.调试 六.基于flash的提示音播放 1.生成正弦 ...

  4. 基于stm32f103c8t6的flash的数据读取以及提示音播放程序

    文章目录 一. 题目 二. 所使用软件硬件 三. 基于flash的数据读取 四. 基于片内Flash的提示音播放程序 1. 使用DAC输出周期2khz的正弦波 2. 使用DAC输出数字音频歌曲数据转换 ...

  5. Flash数据读取和保存

    实现方法 Flash数据读取和保存的目的是在单片机的程序存储区开辟一块空间专门用来保存系统需要记忆的参数和数据,从而完全取代EEROM,达到降低成本和数据保密的目的.该实现方法主要分为四个部分: FL ...

  6. 基于SPI协议的Flash驱动控制-数据普通读操作

    目录 Flash数据普通读操作 实现原理 verilog设计代码 verilog测试代码 Flash数据普通读操作 实现原理 将片选信号拉低,写入读操作指令,最少读取一个字节的数据,写入读指令后要写入 ...

  7. 【嵌入式20】STM32F103完成对SD卡的数据读取详细操作

    本文主要利用STM32F103完成对SD卡的数据读取,介绍该实验的详细操作 一.题目要求 二.SD卡协议原理 1.SD卡简述 2.SD卡物理结构 3.SD卡寄存器 4.SD卡操作模式 5.SD卡初始化 ...

  8. STM32 FLASH的写入与读取

    STM32 FLASH的写入与读取 解释下a = (u16)(add); u16 FLASH_R(u32 add){ //参数1:FLASH地址(32位)u16 a;a = *(u16*)(add); ...

  9. STM32F10X SPI操作flash MX25L64读写数据

    STM32F10X SPI操作flash MX25L64读写数据 前一段时间在弄SPI,之前没接触过嵌入式外围应用,就是单片机也只接触过串口通信,且也是在学校的时候了.从离开手机硬件测试岗位后,自己一 ...

  10. STM32F103完成对SD卡的数据读取(fat文件模式)

    目录 一.关于SD卡 1.简介 2.SD卡的寄存器 3.SD卡读取与写入(SPI模式) 二.实验操作 1.仪器 2.代码 3.连线 4.烧录程序 5.串口调试助手初始化并写入文件 6.sd卡里hell ...

最新文章

  1. 白话tensorflow分布式部署和开发
  2. asynchronous-logging-with-log4j-2--转
  3. 论文阅读:Deep Filter Banks for Texture Recognition and Segmentation
  4. eigen 列向量转矩阵_快速入门矩阵运算——开源库Eigen
  5. 2018.03.12、Android知识点-Java篇
  6. Spring和SpringMVC父子容器关系初窥
  7. String、StringBuilder、StringBuffer 区别
  8. ASP.NET验证码
  9. QQ空间自动发广告解决方法
  10. 从懵懵懂懂到如今的恍恍惚惚
  11. 批量抓取图虫作者页作品图片的方法
  12. 浅谈Marlin2.0
  13. 解决微信小程序RangeError: WebAssembly.instantiate(): Out of memory: wasm memory内存不足问题
  14. Huawei SDN Certification 华为SDN网络认证产品EOX公告
  15. C 求爱因斯坦数学题有一条长阶,若每步跨 2阶 ,则 最后剩 l阶,
  16. 病毒检测(BF实现)
  17. Word临时文件怎么恢复?可持续的文件恢复方法
  18. vivo手机html卸载不了,vivo手机怎么彻底卸载删除软件残留的垃圾文件呢
  19. 求[1,n]中所有素数之和
  20. catv系统主要有哪三部分组成_数控系统由哪几部分组成

热门文章

  1. 微服务项目部署-POS收银系统
  2. SQLSERVER大小写转换方法
  3. 基于OpenCv+Django的网络实时视频流传输(前后端分离)
  4. 看这玩意复习你还会挂科?《web开发1篇》
  5. 实现用户行为监测之webfunny
  6. larvel html转pdf文件,如何在Laravel中使用TCPDF从HTML生成PDF
  7. mysql 多表查询
  8. ALC662 在Mac中的安装
  9. me909嵌入式linux,linux4.1.4上移植ME909s-821,MU609 4G模块驱动
  10. 用Python生成人人贷借款理由词云图