STM32之flash的读写

2023-11-08

本文内容:本实验主要介绍Flash地址空间的数据读取。

一、创建STM32CUBEMX工程

芯片选择F103C8
在这里插入图片描述
配置定时器
在这里插入图片描述
打开外部时钟
在这里插入图片描述
配置时钟
在这里插入图片描述
配置PC13为output对应板子上的LED
在这里插入图片描述
设置堆栈大小为4K,导出
在这里插入图片描述

二、KEIL下的配置

将flash.c 和flash.h添加到工程中
在这里插入图片描述
添加代码如下:

#include "flash.h"

在这里插入图片描述

uint8_t FlashWBuff [255];
uint8_t FlashRBuff [255];

在这里插入图片描述

	uint8_t i;
	uint8_t FlashTest[] = "Hello This is ZhangShiSan Flash Test DEMO";

在这里插入图片描述
编译
在这里插入图片描述
DEBUG下选择STlink
在这里插入图片描述
将程序下载到单片机中
在这里插入图片描述
在这里插入图片描述

下载完成
在这里插入图片描述
点击进入debug
在这里插入图片描述
在view下打开memory1窗口
在这里插入图片描述
打开watch1窗口
在这里插入图片描述
Periodic Windows Update开启变量自动更新
在这里插入图片描述
将变量FlashWBuff 和 FlashRBuff加入到 Watch1
在这里插入图片描述
在memory1中输入要观察的地址0x800c000
在这里插入图片描述
运行程序,可以看到数组FlashRBuff中内容与数组FlashWBuff中内容一样
在这里插入图片描述
定义好的句子写到了地址0x0800c000中了
在这里插入图片描述

三、总结

本次做了简单的flash读写,通过仿真查看存放地址。

四、参考文章

https://blog.csdn.net/qq_46467126/article/details/122098829?spm=1001.2014.3001.5501
https://blog.csdn.net/weixin_52288941/article/details/122147152?spm=1001.2014.3001.5501

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32之flash的读写 的相关文章

  • 为 ARM 交叉编译 zlib

    我尝试为arm poky linux gnueabi交叉编译zlib 但启动 make 时出现错误 zlib 1 2 11 AR HOST ar CC HOST gcc RANLIB HOST ranlib configure prefix
  • 如何在 Android 设备上运行 VS Code [重复]

    这个问题在这里已经有答案了 我有 Galaxy Tab S6 它具有替代笔记本电脑的很酷的功能 例如连接鼠标和键盘 但不幸的是它运行 Android 操作系统 并且没有很多开发应用程序可用于 Android 所以我想是否有一个选项可以在至少
  • 有没有办法在 Xcode 4 中为 ARM 而不是 Thumb 进行编译?

    如果有很多浮点运算正在进行 Apple 建议针对 ARM 进行编译 而不是针对拇指进行编译 我的整个应用程序几乎是一个大型浮点运算 iOS 应用程序开发工作流程指南中是这样说的 iOS 设备支持两种指令集 ARM 和 Thumb Xcode
  • 分析 Cortex-M7 (stm32f7) 上的 memcpy 性能

    简洁版本 从 GNU ARM 工具链中提取的 memcpy 的性能指标在 ARM Cortex M7 上对于不同的副本大小似乎差异很大 即使复制数据的代码始终保持不变 这可能是什么原因造成的 长版 我是使用 GNU Arm 工具链 11 2
  • ARM 调用约定是否允许函数不将 LR 存储到堆栈中?

    正如标题所示 我在理解 ARM 架构的调用约定时遇到问题 特别是 我仍然很难知道当你调用子程序时 LR 寄存器会发生什么 我认为 当您进入子程序时 处理 LR 寄存器的最明显 最安全的方法是将其存储到堆栈中 但该行为没有出现在文档中 因此我
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • 了解 ctags 文件格式

    我使用 Exhuberant ctags 来索引我的 c 项目中的所有标签 c project 是 Cortex M7 微控制器的嵌入式软件 结果是一个标签文件 我正在尝试阅读该文件并理解所写的内容 根据我找到的 ctags 和 Exhub
  • ARM 系统调用的接口是什么?它在 Linux 内核中的何处定义?

    我读过有关 Linux 中的系统调用的内容 并且到处都给出了有关 x86 架构的描述 0x80中断和SYSENTER 但我无法追踪 ARM 架构中系统调用的文件和进程 任何人都可以帮忙吗 我知道的几个相关文件是 arch arm kerne
  • AOSP 的“午餐”组合是什么意思?我需要选择什么?

    我是 Android 设备 ROM 开发的新手 无论如何 我现在正在为具有 64 位处理器的中国设备构建 AOSP 我按照 source android com 上的菜单进行操作 当我运行 午餐 命令时 终端显示 午餐菜单 选择一个组合 我
  • gdb 不会从外部架构读取核心文件

    我正在尝试在 Linux 桌面上读取 ARM 核心文件 但似乎无法找出我的核心文件 有什么方法可以指示 gdb 我的核心文件是什么类型吗 file daemon daemon ELF 32 bit LSB executable ARM ve
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor
  • iPhone 3GS 上的 ARM 与 Thumb 性能比较,非浮点代码

    我想知道是否有人有关于 iPhone 3GS 上 ARM 与 Thumb 代码性能的硬性数据 特别是对于非浮点 VFP 或 NEON 代码 我知道 Thumb 模式下的浮点性能问题 更大的 ARM 指令的额外代码大小是否会在某个时刻成为性能
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加
  • 如何获取结构体中任意成员的位位置

    如何获取结构体中任意成员的位位置 在示例中 gt typedef struct BitExamStruct unsigned int v1 3 unsigned int v2 4 unsigned int v3 5 unsigned int
  • 交叉编译armv5,但它创建v7二进制文件

    我设法为arm926ej s创建了一个目标文件我在 qemu 上使用 Debian Arm arm linux gnueabi gcc 4 4 static O c mcpu arm926ej s hello c o hello root
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 让 TensorFlow 在 ARM Mac 上使用 GPU

    我已经安装了TensorFlow在 M1 上 ARM Mac 根据这些说明 https github com apple tensorflow macos issues 153 一切正常 然而 模型训练正在进行CPU 如何将培训切换到GPU
  • 哪些 GCC 优化标志对二进制大小影响最大?

    我正在使用 GCC 为 ARM 开发 C 我遇到了一个问题 我没有启用优化 我无法创建二进制文件 ELF https en wikipedia org wiki Executable and Linkable Format 对于我的代码 因
  • 在LPC2148 ARM处理器上创建中断向量的汇编代码

    我最近刚刚开始使用 LPC2148 ARM 处理器 我试图理解一些有关创建中断向量的汇编代码 这是代码 Runtime Interrupt Vectors Vectors b start reset start ldr pc undf un
  • 支持 ARM 上的 Windows 10 桌面应用程序 - MFC 和 COM 以及 OPOS 可以工作吗?

    我试图了解将在 x86 Windows 10 上运行的 C MFC 应用程序移植到具有 Qualcomm Snapdragon 处理器的 ARM Windows 10 设备的障碍 32位应用程序具有以下特点 MFC 与 C 用于用户界面 C

随机推荐

  • 自带字典_原来华为手机还自带在线翻译功能,无需任何软件,即可随时翻译!...

    翻译大家都并不陌生 就算在我们生活中都可能会用上 那更别提学习或工作中了 以前我们翻译英文都会使用英汉字典 但是随着现在科技的发展现在我们手机上都会自带一些翻译软件 就比如我们国产华为手机 如果你能够合理化的利用必定能够让你事半功倍 一 手
  • 【论文研读】【医学图像】【R2UNet】Recurrent residual U-Net for medical image segmentation

    R2UNet Recurrent residual U Net for medical image segmentation Abstract 1 Introduction 2 Related Works 3 RU Net and R2U
  • jieba自定义分词规则与多进程切词

    当存在某些自定义的专业名称或长词时 jieba有可能会当成多个词 但其实是一个词 自定义的方法如下 原始的jieba效果 import jieba if name main sentence 学习python与人工智能有益身体健康 ret
  • ubuntu常用命令(转载)

    ls 列出当前目录文件 不包括隐含文件 ls a 列出当前目录文件 包括隐含文件 ls l 列出当前目录下文件的详细信息 cd 回当前目录的上一级目录 cd 回上一次所在的目录 cd 或 cd 回当前用户的宿主目录 mkdir 目录名 创建
  • ide运行报错“Command line is too long”解决办法

    有时运行程序时 ide会报如下错 如何解决呢 其实提示已经告诉你解决办法了 点击图中的蓝色超链接 JAR MAINIFEST 或 CLASSPATH FILE 都能解决问题 这是因为命名的方法名太长了才会报这个错 方法2 如果没有弹窗 也可
  • 查看Linux下rpm文件安装到哪个路径

    命令 root localhost rpm qpl xxx rpm more
  • 用户数据报UDP

    UDP概述 UDP 只在 IP 的数据报服务之上增加了很少一点的功能 即端口的功能和差错检测的功能 UDP 的主要特点 UDP 是无连接的 不需要建立连接 直接发送数据 发送完以后也不需要释放连接 UDP 使用尽最大努力交付 即不保证可靠交
  • 使用 MATLAB 绘制爱心:帮助你成功表白

    作者简介 人工智能专业本科在读 喜欢计算机与编程 写博客记录自己的学习历程 个人主页 小嗷犬的个人主页 个人网站 小嗷犬的技术小站 个人信条 为天地立心 为生民立命 为往圣继绝学 为万世开太平 本文目录 MATLAB 绘制爱心 方法一 方法
  • C++中string的size与length的区别

    在C 的string类中 有两种函数 length和size 他们的作用都是返回字符串的长度 那么 问题来了 他们两者有什么区别 为了钻研 我们要先找到他们两者的源代码 让我们先找到length的源代码 首先 我们随便定义一个字符串 并调用
  • hualinux dj3 2.4:drf普通视图generics及例子

    目录 一 关于通用视图generics 1 1 基于类的视图 1 2 关于通用视图 1 2 1 介绍 1 2 2 属性 1 2 3 方法 1 2 4 Mixins 1 2 5 具体的通用视图 1 2 6 其它 二 drf通用视图generi
  • 内核调试手段

    1 内核调试配置选项 内核拥有多项用于调试的功能 但是这些功能会造成额外的输出并导致性能下降 因此 内核通常都是禁止掉调试功能 内核调试相关的配置项主要集中在内核配置菜单 Kernel hacking 中 在使用下面的调试手段时 先确保内核
  • 如何修改unity项目名称

    在Unity中 修改项目名称需要对一些文件和设置进行修改 以下是修改Unity项目名称的步骤 在Unity编辑器中 选择项目文件夹 Project 面板中的 Assets 然后点击右键 在弹出菜单中选择 Show in Explorer 在
  • 项目管理利器—maven

    一 简介 maven是优秀的项目管理和构建工具 能让我们更为方便的来管理和构建项目 从最基础的环境配置 到maven核心知识点的应用 使用maven来构建和管理Java项目 Maven是基于项目对象模型 POM 可以通过一小段描述信息来管理
  • JavaScript数组中筛选相同的元素组成新数组

    var college type 2 lastName 孙策 type 1 lastName 后裔 type 3 lastName 阿木木 type 3 lastName 亚索 type 1 lastName 剑魔 type 1 lastN
  • 写给我的2015—开启工作新旅程

    前沿 2015年的总结相比2014年来的晚了许多 原因一方面是今年呀的发现CSDN竟然没有了前两年写年终的活动 另一方面嘛还是自己太懒散了 一直恍恍惚惚的没有下手来总结 今天 在这小年夜里 ps 外面下完雪挺冷的 独自一个人坐在办公桌前 静
  • 实心球体内部电势计算公式_均匀带电球体中心点电势怎么求

    展开全部 公式 q 其中 为电势能 q为电荷量 为电势 即 q 均匀带电球内的电场分布和距离球心的距32313133353236313431303231363533e4b893e5b19e31333431363565离r成正比 解析 由于正
  • linux文件权限查看及修改-chmod ------入门的一些常识

    查看linux文件的权限 ls l 文件名称ULUitugULUitug查看linux文件夹的权限 ls ld 文件夹名称 所在目录 ULUitugULUitug修改文件及文件夹权限 ULUitugULUitugsudo chmod 代表类
  • 【软件工程】内聚

    概念 是指一个模块内部个成分之间相互关联程度的度量 也就是说 凝聚是对模块内各处理动作组合强度的一种度量 很显然 一个模块的内聚越大越好 偶然凝聚 一个模块内的各处理元素之间没有任何联系 只是偶然地被凑到一起 这种模块也称为巧合内聚 内聚程
  • MySQL数据库引擎InnoDB和MyISAM的区别?

    数据库引擎InnoDB和MyISAM的区别 1 MyISAM不支持事务 InnoDB支持事务 2 MyISAM支持全文索引 InnoDB在MySQL5 6之前不支持 3 MyISAM不支持外键 InnoDB支持外键 4 MyISAM只支持表
  • STM32之flash的读写

    本文内容 本实验主要介绍Flash地址空间的数据读取 一 创建STM32CUBEMX工程 芯片选择F103C8 配置定时器 打开外部时钟 配置时钟 配置PC13为output对应板子上的LED 设置堆栈大小为4K 导出 二 KEIL下的配置