STM32F4学习

F4系统架构

8个主控总线+7个被控总线

主控总线

  • Cortex-M4内核 I总线
  • Cortex-M4内核 D总线
  • Cortex-M4内核 S总线
  • DMA1存储器总线
  • DMA2存储器总线
  • DMA2外设总线
  • 以太网DMA总线
  • USB OTG HS DMA总线

被控总线

  • 内部FLASH ICode总线
  • 内部FLASH DCode总线
  • 主要内部SRAM1(112KB)
  • 辅助内部SRAM2(16KB)
  • 辅助内部SRAM3(64KB)(适用于F42xxx和F43xxx)
  • AHB1外设(包括AHB-APB总线桥和APB外设)
  • AHB2外设
  • FSMC

在这里插入图片描述

  1. 主控总线
  2. 被控总线

CCM RAM:只能存数据,优点访问速度快,缺点不支持DMA

总线时钟频率:

  • AHB1/2:168/180MHz(Max)
  • APB1:42/45MHz(Max)
  • APB2:84/90MHz(Max)

FSMC主要用于扩展外部存储器

STM32的寻址范围

32位的单片机有32根地址线(每根地址线有两种状态:导通或不导通)
单片机内存地址访问的存储单元是按字节编址的(而不是bit)
STM32寻址大小:232=4G(字节)
寻址范围:0x00000000~0xFFFFFFFF

存储器映射

存储器指可以存储数据的设备,本身没有地址信息,对存储器分配地址的过程称为存储器映射。

存储器功能划分(F1为例),ST将4G(232)地址空间分成8个块

  • Block0:Code(FLASH)—— 0x0000 0000 ~ 0x1FFF FFFF(512MB)
  • Block1:SRAM —— 0x2000 0000 ~ 0x3FFF FFFF(512MB)
  • Block2:片上外设 —— 0x4000 0000 ~ 0x5FFF FFFF(512MB)
    在这里插入图片描述
  • Block7:Cortex M3内部外设 —— 0xE000 0000 ~ 0xFFFF FFFF(512MB)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

寄存器映射

寄存器是单片机内部一种特殊的内存,可以实现对单片机各个功能的控制。

寄存器就是单片机内部的控制机构
在这里插入图片描述

STM32寄存器分类

在这里插入图片描述
寄存器是特殊的存储器,给寄存器地址命名的过程,就叫寄存器映射。
在这里插入图片描述

在这里插入图片描述

寄存器地址计算

为了方便编写代码及使用,我们将寄存器地址分为三个部分:

  1. 总线基地址
  2. 外设基于总线基地址的偏移量
  3. 寄存器相对于外设基地址的偏移量

在这里插入图片描述

在这里插入图片描述
APB1总线的基地址,也叫外设基地址

在这里插入图片描述
在这里插入图片描述
GPIOA_ODR寄存器地址计算过程:

  1. 获取外设挂在哪个总线上面?查系统结构图
  2. 获取总线基地址,APB2总线基地址:0x4001 0000
  3. 获取外设地址偏移量,GPIOA相对APB2总线偏移量是:0x800
  4. 获取寄存器地址偏移量,ODR相对GPIOA外设基地址的偏移量是:0x0C
typedef struct
{__IO uint32_t CRL;__IO uint32_t CRH;...
}GPIO_TypeDef;GPIOA_BASE:0x4001 0800
#define GPIOA (GPIO_TypeDef *)GPIOA_BASE

GPIOA->ODR = 0XFFFF;

STM32F103xe.h主要组成部分

  • 中断编号定义:定义IRQn_Type枚举类型,包含STM32F103内部所有中断编号(中断号),方便后续编写代码。
  • 外设寄存器结构体类型定义:以外设为单位,使用结构体类型定义每个外设所有寄存器,方便寄存器映射。
  • 寄存器映射:1、定义总线地址和外设基地址。2、使用外设结构体类型定义将外设基地址强制转换成结构体指针,完成寄存器映射。
  • 寄存器位定义:定义外设寄存器每个功能位的位置及掩码。
  • 外设判定:判断某个外设是否合法(即是否存在该外设)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI绘画+Midjourney平替】Fooocus:图像生成、修改软件(Controlnet原作者重新设计的UI+Windows一键部署)

代码:https://github.com/lllyasviel/Fooocus windows一键启动包下载:https://github.com/lllyasviel/Fooocus/releases/download/release/Fooocus_win64_2-1-831.7z B站视频教程:AI绘画入门神器:Fooocus | 简化SD流程&#xff0c…

【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

Windows如何安装Node.js环境并制作贪吃蛇小游戏分享好友远程访问

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

redis(6)

文章目录 一、redis clusterRedis Cluster 工作原理Redis cluster 基本架构Redis cluster主从架构Redis Cluster 部署架构说明部署方式介绍 原生命令手动部署原生命令实战案例:利用原生命令手动部署redis cluster 实战案例:基于Redis 5 的redis cluster部…

【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“

使用idea运行项目,显示错误信息如下: 原因是:idea配置的maven加载不到autoconfigure。 解决方案一: 第6步绕过证书语句如下: -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue 打开终端&am…

【视频编码\VVC】变换编码基础知识及标准设计相关参数

变化编码的基础知识 定义:变换编码是将以空间域像素形式描述的图像转换至变换域,以变换系数的形式加以表示。 大部分图像都包含较多平坦区域和内容变化缓慢的区域,使得图像能量在空间域的分散转换为变换域的相对集中分布,从而达…

算法学习——华为机考题库10(HJ64 - HJ69)

算法学习——华为机考题库10(HJ64 - HJ69) HJ64 MP3光标位置 描述 MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲&a…

基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道

基于MATLAB实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道 相关链接 OFDM中的帧(frame)、符号(symbol)、子载波(subcarriers)、导频…

数据库管理-第144期 深入使用EMCC-01(20240204)

数据库管理144期 2024-02-04 数据库管理-第144期 深入使用EMCC-01(20240204)1 用户管理2 配置告警动作3 配置意外事件规则总结 数据库管理-第144期 深入使用EMCC-01(20240204) 作者:胖头鱼的鱼缸(尹海文&am…

大创项目推荐 题目:基于深度学习的人脸表情识别 - 卷积神经网络 大创项目推荐 代码

文章目录 0 简介1 项目说明2 数据集介绍:3 思路分析及代码实现3.1 数据可视化3.2 数据分离3.3 数据可视化3.4 在pytorch下创建数据集3.4.1 创建data-label对照表3.4.2 重写Dataset类3.4.3 数据集的使用 4 网络模型搭建4.1 训练模型4.2 模型的保存与加载 5 相关源码6…

vscode1.86无法远程连接waiting the server log

问题 vscode升级到最新的1.86版本后,无法远程连接服务器Remote SSH,在log中提示如下: 观察下面的log提示可得: glibc的版本好像不符合vscode1.86版本的要求。你可以在你的服务器上运行下面的指令查看glibc的版本: …

【计算机网络】物理层概述|通信基础|奈氏准则|香农定理|信道复用技术

目录 一、思维导图 二、 物理层概述 1.物理层概述 2.四大特性(巧记"械气功程") 三、通信基础 1.数据通信基础 2.趁热打铁☞习题训练 3.信号の变身:编码与调制 4.极限数据传输率 5.趁热打铁☞习题训练 6.信道复用技术 推荐 前些天发…

服务器端会话技术-Session

一、Session 1.1 概述和快速入门 概述:Session 是服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中 快速入门 获取 HttpSession 对象使用 HttpSession 对象 常用方法 方法作用HttpSession request.getSe…

图像处理常用算法介绍

此篇简单回顾下图像处理领域常用到的一些算法,这边只对每个知识点重要的点做一些记录,便于快速的知其形,会其意。 一. SIFT(Scale-Invariant feature transform)特征 重点是了解DOG(Difference of Gaussian)高斯差分图像是如何生…

ubuntu离线安装k8s

目录 一、前期准备 二、安装前配置 三、安装docker 四、安装cri-dockerd 五、部署k8s master节点 六、整合kubectl与cri-dockerd 七、网络等插件安装 八、常见问题及解决方法 一、前期准备 ①ubuntu系统 本地已安装ubuntu系统,lsb_release -a命令查看版本信…

2024网络安全学习路线,最全保姆级教程,学完直接拿捏!

关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 前排提示:文末有CSDN独家网络安全资料包! 1、打基础时间太长 学基础花费很长时间,光语言都…

Windows10安装PCL1.14.0及点云配准

一、下载visual studio2022 下载网址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 安装的时候选择"使用C的桌面开发“,同时可以修改文件路径,可以放在D盘。修改文件路径的时候,共享组件、…

Open CASCADE学习|拉伸

目录 1、沿方向拉伸 2、沿路径拉伸 3、变形拉伸 1、沿方向拉伸 #include <Geom_CylindricalSurface.hxx> #include <gp_Ax3.hxx> #include <GeomAPI_Interpolate.hxx> #include <BRepAdaptor_Curve.hxx> #include <BRepBuilderAPI_MakeEdge.hxx&…

追觅发布多款旗舰新品,双机械臂扫地机器人X40领衔登场

2月2日&#xff0c;追觅科技全球首创仿生“双”机械臂新品发布会在苏州举行。会上&#xff0c;追觅科技中国区总裁郭人杰分享了追觅科技全球化发展的业绩成果。郭人杰称&#xff0c;2019-2023年&#xff0c;追觅科技5年复合年增长率超过100%&#xff0c;增速领跑智能清洁行业&a…

LeetCode、746. 使用最小花费爬楼梯【简单,动态规划 线性DP】

文章目录 前言LeetCode、746. 使用最小花费爬楼梯【简单&#xff0c;动态规划 线性DP】题目与分类思路 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。…