硬件设备:STM32F10C8T6最小系统板、ST-LINK
软件设备:Keil5
一、下载源码
本次实验所用工程是参考STM32 进阶教程 13 – FLASH的读写操作这篇博客完成的,可仿照博文中使用STM32Cube创建工程文件,也可以直接下载源码进行验证操作。
源码连接:
链接:https://pan.baidu.com/s/1QkHq2Den14Fpez5BPGRUgg
提取码:7z0w
注意,如果仿照参考博文中建立工程,会有一个报错,需要更改一个文件名的后缀,路径及修改后的名称如下所示:
二、工程配置
- ST-LINK 驱动下载 链接:
链接:https://pan.baidu.com/s/18BgktVHtBizU51lwG1XF3g
提取码:vg0m
成功安装后可在 设备管理器 中找到驱动详情;
- 连接上ST-LINK与STM32最小核心板,打开Keil工程,点击魔术棒进入工程配置;

- 在Debug页面,勾选Use中的
ST-Link Debugger,再进入Settings;

- 在Debug中,Port选择
SW;

- 切换到Flash Download界面,勾选
Reset and Run,点击Add,添加第一个STM32F10x Med-density Flash;


- 点击确定,退出配置
三、调试结果
-
回到主页面,编译无误;

-
点击Debug进行仿真调试;
调试结果如下所示;

-
在View->Memory Windows选中一个
Memory添加到主页面;

-
在地址栏中输入0x800c000,观察将要修改的flash区间区容;

-
在View->Watch Windows选中一个
Watch添加到主页面;

可以看到 **FlashWBuff 和 FlashRBuff **两个变量;

-
勾选View->Periodic Windows Update开启变量自动更新;

-
按下
F5,全速运行程序,可以看到数组 FlashRBuff 中内容与数组 FlashWBuff 中内容一样了,这里再添加了一个Watch2窗口,方便比对;

-
同时可以在Memory 1窗口中看到在FLASH地址0x0800C000区成功写入对应内容:

具体代码位置如下所示:

四、分析总结
通过验证flash地址空间的读写,安装ST-LINK的驱动和相关配置,验证了写入数据的正确性和读写速率。实验操作并不困难,若是之前有安装过驱动就更容易上手啦!查阅资料发现C8T6应当是LQFP48封装的64k内部FLASH的MCU,但是在使用中发现,我们是可以对超过64K字节的FLASH空间进行读写的,而且MDK默认的下载算法也是针对128KFLASH的。
STM32 FLASH读写实战
本文介绍如何在STM32F10C8T6最小系统板上实现FLASH的读写操作。从源码下载、工程配置到调试结果一一展示,并通过Keil5软件进行验证。最终确认了对超过64K字节的FLASH空间进行读写的可行性。

766

被折叠的 条评论
为什么被折叠?



