STM32----HAL库函数

news2024/12/24 10:09:53

1.STM32系统框架

1.1 Cortex-M内核&芯片

 1.2 F1系统框架

4个主动单元+4个被动单元

AHB:高级高性能总线                                                           APH:高级外围总线

其中 1 为 主动单元 , 2为被动单元

总线时钟频率:AHBB:72Mhz               APB1:36Mhz                         APB2:72Mhz

2. STM32的寻址范围

(1)可以有32位地址线 (每根地址线有两种状态:导通或不导通)

(2)单片机内存地址访问的存储单元是按字节编址的(不是bit)----一个字节是8个bit

3. 存储器映射

存储器可以存储数据设备,本身没有地址信息,对存储器分配地址的过程叫做映射,有19根地址线(2的19次方 512k),每个按照两个字节来编写,有16根数据线

将4G的内存分为8块

4,寄存器映射

可以实现对2各个功能的实现 

寄存器是特殊的储存器,给他命名的过程,就是寄存器映射

直接对操作寄存器地址举例:

*(unsined int)(0x4001 080C) = 0xffff

(1)地址怎么找?                   (2)映射方法?

寄存器地址计算:

为了方便计算,我们会把寄存器地址分为3部分

1.总线基地址(AHB APB    -------- BUS_BASE_ADDR)

2.外设基于总线地址的偏移量

3.寄存器相对外设地址的偏移量

所以寄存器地址 = 1+2+3

在数据手册寄存器映射的最后一行,也就是我们的总线基地址

APB1也叫做外设基地址----因为其为block2的基地址开始,所以被称为外设基地址,而上面的偏移量,也是基于APB1来进行偏移的

这个表则是基于APB2来偏移的

举例 GPIOA_ODR寄存器地址计算:

1. 获取外设所挂在的总线 

2.获取总线基地址  0x40010000

3. GPIOA相对APB2的总线偏移量:0X800

4.获取寄存器地址偏移: 0x0C(寄存器描述里)

最后得到 0x4001080C

因此,使用结构体可以简单的完成对寄存器的配置一次性到位

                                         

每个寄存器都多偏移4个字节,所以就可以一次性映射

  

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

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

相关文章

计算机网络(3):数据链路层

数据链路层属于计算机网络的低层。 数据链路层使用的信道主要有以下两种类型: (1)点对点信道。这种信道使用一对一的点对点通信方式。 (2)广播信道。这种信道使用一对多的广播通信方式。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这…

Springboot项目启动前,使用GUI做初始化配置页面并将Log4j2的日志实时显示在GUI上

Springboot项目启动前,使用GUI做初始化配置页面并将Log4j2的日志实时显示在GUI上 效果预览 Mac Os效果图 Windows 10 效果图 需求分析 做这样的一个功能并不适用于所有系统,主要用于交付给用户的产品,这样方便客户自行维护。传统的服务一般…

Scratch:让少儿编程变得简单有趣

在21世纪这个信息化、数字化的时代,编程已经成为一种重要的技能。然而,对于许多孩子来说,编程可能是一种难以理解和掌握的技能。那么,有没有一种方法,可以让孩子们在轻松愉快的环境中学习编程呢?答案是肯定…

2024年电工(初级)证模拟考试题库及电工(初级)理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年电工(初级)证模拟考试题库及电工(初级)理论考试试题是由安全生产模拟考试一点通提供,电工(初级)证模拟考试题库是根据电工&…

简单的git操作指令

简单的git操作指令 1. git clone2. git add .3. git commit4. git push5. git rm6. git status7. git log8. git pull 1. git clone 如果有小伙伴出现报错的情况,爆出错误fatal: unable to access…not resolve host或者Network is unreachable可以看看这篇文章。 …

第三周:Python能力复盘

资料: 《笨办法学Python》阅读地址:https://www.bookstack.cn/read/LearnPython3TheHardWay 《廖雪峰Python教程》阅读地址:http://t.cn/RK0qGu7 《机器学习numpy与pandas基础》:https://zhuanlan.zhihu.com/p/639733816 《matplo…

手把手教你使用Cypress进行端到端测试

一、引言 Cypress是一个流行的端到端测试框架,它提供了一个全面的解决方案,可以测试任何在浏览器中运行的内容。不论你是想为一个小型项目添加测试,还是在大型企业级应用中进行端到端测试,Cypress都是一个不错的选择。本文将会手…

堆与二叉树(上)

本篇主要讲的是一些概念,推论和堆的实现(核心在堆的实现这一块) 涉及到的一些结论,证明放到最后,可以选择跳过,知识点过多,当复习一用差不多,如果是刚学这一块的,建议打…

python实现贪吃蛇游戏

文章目录 1、项目说明2、项目预览3、开发必备4、贪吃蛇代码实现4.1、窗口和基本参数实现4.2、绘制背景4.3、绘制墙壁4.4、绘制贪吃蛇4.5、绘制食物4.6、实现长度信息显示4.7、定义游戏暂停界面4.8、定义贪吃蛇死亡界面4.9、实现贪吃蛇碰撞效果4.10、实现添加食物功能4.11、实现…

怎么检测DC-DC电源模块稳定性?电源测试系统测试有什么优势?

DC-DC电源模块稳定性测试 稳定性是衡量DC电源模块的重要指标,电源模块的稳定性直接影响着电源产品和设备的工作稳定性。DC-DC电源模块的稳定性,可以通过检测输出电压、输出电流、负载、波形、效率等参数来评估。 1. 静态测试方法 静态测试是通过直流电压…

理解SwiftUI中的matchedGeometryEffect

matchedGeometryEffect SwiftUI 2.0 引入了一个新的修饰符:matchedGeometryEffect 。使用matchedGeometryEffect可以为整个层次结构中的视图创建过渡动画。只需要将它附加到要进行动画处理的两个视图上,并给它们指定相同的标识符。有了 matchedGeometry…

深耕元宇宙领域,强势发力文旅市场

2023年12月14日,“承上启下 智元宇宙:2024元宇宙与人工智能应用场景闭门会——苏州”在苏州泰山路2号百度VR(苏州)赋能中心成功举办。会议邀请了苏州本地的相关优秀企业代表、科创精英、投资与行业技术代表、公司创始人共计约50余…

龙迅LT6211B,HDMI1.4转LVDS,应用于AR/VR市场

产品描述 LT6211B 是一款用于 VR/ 显示应用的高性能 HDMI1.4 至 LVDS 芯片。 对于 LVDS 输出,LT6211B 可配置为单端口、双端口或四端口。对于2D视频流,同一视频流可以映射到两个单独的面板,对于3D视频格式,左侧数据可以发送到一个…

MySQL表的增删改查(初阶)

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。且增删改查(CRUD,create,retrieve,update,delete)数据库的核心模块。 1. 新增(Create) 实…

去面试性能测试工程师必问的问题,

性能测试的三个核心原理是什么? 1.基于协议。性能测试的对象是网络分布式架构的软件,而网络分布式架构的核心是网络协议 2.多线程。人的大脑是单线程的,电脑的cpu是多线程的。性能测试就是利用多线程的技术模拟多用户去负载 3.模拟真实场景。…

(详解版)创建线程的四种方式

文章目录 Java中创建线程的四种方式1. 继承Thread类并重写 run 方法来创建线程2. 实现Runnable接口并实现 run 方法来创建线程。3. 使用Callable接口创建线程4. 使用Executor框架创建线程 Java中创建线程的四种方式 接下来我会详细解释这四种方式创建线程如何实现. 我们如果要…

STM32——串口通信应用篇

一、引言 STM32微控制器是一款功能强大的嵌入式系统芯片,广泛应用于各种领域。其中,串口通信是其重要功能之一,可用于与外部设备进行数据交换和控制。本文将介绍STM32串口通信的基本原理、应用场景以及实现方法。 二、STM32串口通信基本原理 …

linux xxd命令(将文件或标准输入转换为hex(十六进制)和ASCII(美国信息交换标准代码)表示,或者从hex dump(十六进制转储)反向到二进制)

文章目录 Linux xxd命令安装xxd基本使用方法创建hex dump从hex dump恢复到二进制 命令选项疑难技术点解析在脚本中使用xxd从hex dump恢复数据 总结 Linux xxd命令 xxd是一个在Linux和UNIX系统中常用的工具,主要用于将文件或标准输入转换为hex(十六进制&…

Java中线程状态的描述

多线程-基础方法的认识 截止目前线程的复习 Thread 类 创建Thread类的方法 继承Thread类,重写run方法实现Runnable接口,重写run方法使用匿名内部类继承Thread类,重写run方法使用匿名内部类实现Runnable接口,重写run方法使用Lambda表达式 run方法中的所有的代码是当前线程对…

[Linux] LVS负载均衡群集——DR模式

一、 DR模式的特点 直接路由: 在LVS_DR模式下,负载均衡器不修改数据包的IP地址,只修改目的MAC地址。这使得数据包可以直接路由到后端实际服务器上,而不需要返回到负载均衡器。 高性能: 由于数据包在传输过程中不需要回…