重生归来之挖掘stm32底层知识(1)——寄存器

server/2024/9/22 17:12:49/

       概念理解

         要使用stm32首先要知道什么是引脚和寄存器。

        如下图所示,芯片通过这些金属丝与电路板连接,这些金属丝叫做引脚。一般做软件开发是不需要了解芯片是怎么焊的,只要会使用就行。我们平常通过编程来控制这些引脚的输入和输出,一般在开发板上引出来针脚,这些针脚基本上都是我们可编程的,一般叫做GPIO。

         单片机现在存在于生活中的方方面面,高端的像手机电脑,低一些的像家用电器的显示屏,这背后都有单片机的存在。在一些功能少的东西上面用大内存的芯片会导致成本高,所以单片机的内存都非常小,因此其编程语言采用的也是针对底层的C语言。

        通过C语言,可以找到单片机各种外设资源的地址,并进行读和写的操作。每一个外设所占的地址被叫做存储器,其地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射,如果给存储器再分配一个地址就叫存储器重映射。

        存储器划分好了之后,在里面还有很多不同外设的负责不同功能的字节。stm32芯片的每个功能都被分配了4个字节(Byte)即32bit来控制,所以这负责控制某个功能的4个字节被称为一个单元。为了方便记忆,为每个单元起个名字,这个名字就是寄存器,取名的过程就是寄存器映射。下图为寄存器起始地址。

         通过外设的起始地址,再加上每个寄存器的起始地址,通过C语言的指针就能找到需要配置的寄存器,通过位与和位或就能对其进行操作。

总结

        简单来说,寄存器就是各个外设对应功能的名字,通过对这些名字进行操作就能实现对我们需要编程的位进行读写操作,从而控制相应引脚的输入输出状态,实现我们想要的功能。


http://www.ppmy.cn/server/118373.html

相关文章

ubuntu 22.04 ~24.04 如何修改登录背景

ubuntu 22.04 ~24.04 如何修改登录背景 背景:由于22.04 登录gdm的变更,之前的修改登录背景的方案已经无法使用。现在给大家分享新的使用方法: 1,下载如下路径的脚本: https://download.csdn.net/download/xdhyqd/89…

Android mmap分析

Android mmap分析 mmap基础概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作…

[Redis] Redis中的set和zset类型

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

ARM驱动学习之 IOremap实现GPIO 读

ARM驱动学习之 IOremap实现GPIO 读 前面介绍了虚拟地址和物理地址。 读写GPIO,控制GPIO的寄存器都是使用系统做好的虚拟地址 本期介绍如何自己实现物理地址到虚拟地址的转化 iounmap和ioremap函数可以实现物理地址到虚拟地址的转化1.根据原理图找核心板对应的寄存器…

PostgreSQL的流复制断点续传

PostgreSQL的流复制断点续传 PostgreSQL的流复制(Streaming Replication)具有断点续传的能力,这意味着当主节点和备用节点之间的连接由于网络故障等原因中断后,备用节点会自动从中断点继续接收WAL(Write-Ahead Loggin…

python生成器原理

#2-使用生成器生成斐波那契数列(无限序列) def fibonacci(): a, b 0, 1 while True: yield a a, b b, a b gen fibonacci() for _ in range(10): print(next(gen),end,) #第一次next后,执行fibonacci函数,到yield a处停止&a…

【笔记】时间复杂度

文章目录 时间复杂度概念常见的时间复杂度时间复杂度的衡量常数时间例子线性时间例子平方时间例子对数时间例子 时间复杂度概念 时间复杂度:衡量算法随着输入量增长,执行时间的增长速度。 一般来说,肯定是希望时间复杂度小点比较好。 常见…

Cesium 问题:视角漫游时添加的无人机模型飞行时有抖动

文章目录 问题分析1. 调整飞机模型的高度,比如漫游视角飞行时是1500米,那么可以试着设置飞机模型的高度是1000米或300米,就不会看到抖动了2. 在给飞机新坐标时用如下方式问题 Cesium 问题:视角漫游时添加的无人机模型飞行时有抖动,飞行不太流畅 分析 不太平滑飞行有这两…