基于STM32的FLASH读写

硬件设备:STM32F10C8T6最小系统板、ST-LINK
软件设备:Keil5

一、下载源码

本次实验所用工程是参考STM32 进阶教程 13 – FLASH的读写操作这篇博客完成的,可仿照博文中使用STM32Cube创建工程文件,也可以直接下载源码进行验证操作。
源码连接:
链接:https://pan.baidu.com/s/1QkHq2Den14Fpez5BPGRUgg
提取码:7z0w

注意,如果仿照参考博文中建立工程,会有一个报错,需要更改一个文件名的后缀,路径及修改后的名称如下所示:
在这里插入图片描述

二、工程配置

  1. ST-LINK 驱动下载 链接:

链接:https://pan.baidu.com/s/18BgktVHtBizU51lwG1XF3g
提取码:vg0m
成功安装后可在 设备管理器 中找到驱动详情;

  1. 连接上ST-LINK与STM32最小核心板,打开Keil工程,点击魔术棒进入工程配置;
    在这里插入图片描述
  2. Debug页面,勾选Use中的ST-Link Debugger,再进入Settings
    在这里插入图片描述
  3. Debug中,Port选择SW
    在这里插入图片描述
  4. 切换到Flash Download界面,勾选Reset and Run,点击Add,添加第一个STM32F10x Med-density Flash
    在这里插入图片描述
    在这里插入图片描述
  5. 点击确定,退出配置

三、调试结果

  1. 回到主页面,编译无误;
    在这里插入图片描述

  2. 点击Debug进行仿真调试;
    在这里插入图片描述调试结果如下所示;
    在这里插入图片描述

  3. View->Memory Windows选中一个Memory添加到主页面;
    在这里插入图片描述

  4. 在地址栏中输入0x800c000,观察将要修改的flash区间区容;在这里插入图片描述

  5. View->Watch Windows选中一个Watch添加到主页面;
    在这里插入图片描述
    可以看到 **FlashWBuff 和 FlashRBuff **两个变量;
    在这里插入图片描述

  6. 勾选View->Periodic Windows Update开启变量自动更新;
    在这里插入图片描述

  7. 按下F5,全速运行程序,可以看到数组 FlashRBuff 中内容与数组 FlashWBuff 中内容一样了,这里再添加了一个Watch2窗口,方便比对;
    在这里插入图片描述

  8. 同时可以在Memory 1窗口中看到在FLASH地址0x0800C000区成功写入对应内容:
    在这里插入图片描述
    具体代码位置如下所示:
    在这里插入图片描述

四、分析总结

通过验证flash地址空间的读写,安装ST-LINK的驱动和相关配置,验证了写入数据的正确性和读写速率。实验操作并不困难,若是之前有安装过驱动就更容易上手啦!查阅资料发现C8T6应当是LQFP48封装的64k内部FLASH的MCU,但是在使用中发现,我们是可以对超过64K字节的FLASH空间进行读写的,而且MDK默认的下载算法也是针对128KFLASH的。

五、参考资料

  1. STM32 进阶教程 13 – FLASH的读写操作
  2. 关于STM32F103C8T6内部FLASH容量的问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值