寄存器相关知识点

news2025/2/24 10:40:36

文章目录

      • 寄存器是什么?
      • 举例子—如何去看手册来配置寄存器
        • 寄存器地址知识点
        • 输出功能
        • 具体实现,在linux编写代码的话
      • 其他

相关视频

寄存器是什么?

本质就是一个存储器,写内存和写指针都是一样的
寄存器里的值和RAM的值,掉电都会丢失

IO用来控制硬件
RAM内存用来存储数据
寄存器的地址通过单片机的芯片手册来看 每个单片机手册都有memory map写了寄存器的地址
读写程序:ROM
读写数据:RAM
控制硬件:IO
image.png
某芯片对应的地址,地址有的是ROM,有的是RAM,有的是spf也就是寄存器
image.png

举例子—如何去看手册来配置寄存器

芯片原理图,如图GPX2_7是控制这个LED2的,这个led灯只需要高低电平就可以控制,所以用GPIO控制即可,GPIO就是只发送高低电平;
image.png
MCU里面有不同的控制器,比如下图这些,GPIO用他的寄存器来控制GPX2_7
image.png

手册中寄存器的描述memory map每个手册都有这个,高诉你寄存器的地址的,往下面翻是有功能描述,这个地址上改什么值就对应什么功能
Base Address:0x1140_0000
offset是地址偏移量,
image.png
上一张表后接着有这张表,是更加细节的描述,这个地址上面内容设置为多少所对应的功能
image.png
然后看下面分析:

寄存器地址知识点

这个寄存器一共32位从0-31,看这个图,每4bit对应里面CPX2CON[0]…[7],有8个就是32位;
这个32位寄存器的地址是0x1100 0000;注意这个地址表示的都是起始地址
地址上存的内容换成2进制就是0000 0000 0000 0000 0000 0000 0000 0000,每4个0是一个GPX2CON[ ],正好[0]-[8];
还要注意大小端;
image.png
分析:GPX2CON7,现在就是要把他28-31位置成0001,就是output 0x1;

输出功能

再往下翻找到这个寄存器,用来设置具体对外输出什么
image.png
这个寄存器虽然32位,但是只用前8位,0-7位;
Description描述的是寄存器上0-7位,如果置位1就直接是pin的状态也置位1高电平,0的话就是低电平;

具体实现,在linux编写代码的话

错误示例:
编译器默认这个0x110000c40是一个普通的数,那就不能取地址;
image.png

正确示例
image.png
(unsigned int )强转为地址;
为什么不是char
,int是4个字节4type = 4x8bit = 32位,就是32位寄存器;
char是1个字节1type,只有8bit;image.png
两个寄存器,1是把寄存器设置成output输出功能、2是让GPX2_7置位1让led灯亮起来,在上面的内容也写了为什么是0x80, 二进制就是 1000 0000,是由手册定义描述的,说了每一位的0、1状态就是第GPX2_第几个输出的电平;

其他

MCU和MPU的区别
image.png

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

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

相关文章

Android 11.0 修改系统显示大小导航栏消失

Android 11.0 修改系统显示大小导航栏消失 1.显示大小设置为大时,导航栏图标不显示。 设置为大,较大,最大时,导航栏图标不显示。 2.开始怀疑是导航栏被隐藏了,各种折腾无效。 3.发现: frameworks/base/pa…

springboot+vue 开发记录(八) 前端项目打包

本篇文章涉及到前端项目打包的一些说明 我打包后的项目在部署到服务器上后,访问页面时按下F12出现了这种情况: 它显示出了我的源码,这是一种很不安全的行为 该怎么办?很简单: 我们只需要下载一点点插件,再…

说说MQ在你项目中的应用(二)商品支付

看了不少关于MQ的文章,也对MQ的作用做了一些总结。通常来说MQ有三大功能:异步处理、系统解耦和流量削峰。但我觉得这些功能本质上都是围绕着异步这个核心来的,只是针对不同的业务场景做了些调整。 现在市面上常用的MQ中间件,如Ra…

大数据之Linux部署常用命令脚本封装

文章目录 编写集群命令执行脚本xcall集群命令执行1. 脚本需求2. 需求分析3. 脚本实现3.1 创建脚本存放目录3.2 编写xcall脚本3.3 修改脚本执行权限3.4 测试脚本 编写集群分发脚本xsync集群分发脚本1. 脚本需求2. 需求分析3. 脚本实现3.1 创建脚本存放目录3.2 编写xsync脚本3.3 …

amis-editor 注册自定义组件

建议先将amis文档从头到尾,仔细看一遍。 参考:amis - 低代码前端框架 amis 的渲染过程是将 json 转成对应的 React 组件。先通过 json 的 type 找到对应的 Component,然后把其他属性作为 props 传递过去完成渲染。 import * as React from …

[数据集][目标检测]睡岗检测数据集VOC+YOLO格式3290张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3316 标注数量(xml文件个数):3316 标注数量(txt文件个数):3316 标注…

了解C# 中的集合(包括泛型和非泛型)

跨站点脚本 (XSS) 攻击是一种严重的安全威胁,恶意脚本会注入其他用户查看的网页中。本文演示了如何在 ASP.NET Core MVC 中构建一个简单的博客应用程序,同时使用内置安全功能和最佳实践来防止 XSS 攻击。 步骤 1.创建 ASP.NET Core MVC 项目 创建新的 …

Ollama中文版部署

M1部署Ollama Ollama中文网站: Featured - 精选 - Ollama中文网 下载网址: Download Ollama on macOS 安装后运行llma3模型: ollama run llama3:8b 界面使用: GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) 部署open-webui: do…

摸鱼大数据——Spark基础——Spark环境安装——PySpark搭建

三、PySpark环境安装 PySpark: 是Python的库, 由Spark官方提供. 专供Python语言使用. 类似Pandas一样,是一个库 Spark: 是一个独立的框架, 包含PySpark的全部功能, 除此之外, Spark框架还包含了对R语言\ Java语言\ Scala语言的支持. 功能更全. 可以认为是通用Spark。 功能 P…

【教学类-64-08】20240629彩棒鱼骨图(五)AAB排列 6.5*1CM 6选2根 30种

背景需求: 【教学类-64-04】20240619彩棒鱼骨图(一)6.5*1CM 6根棒子720种-CSDN博客文章浏览阅读897次,点赞23次,收藏13次。【教学类-64-04】20240619彩棒鱼骨图(一)6.5*1CM 6根棒子720种https:…

Java学习 - Redis开发规范与安全

开发规范 key设计 因素说明键名可读性,可管理性业务名:表名:字段名键名简洁性user:{uid}:friends:message:{mid}简化为u:{uid}🇫🇷m:{mid}与embstr和raw有关键名不包含特殊字符比如空格,制表符等,最好只有字母&#…

【Lua】第三篇:基本变量类型介绍

文章目录 一. 变量类型介绍二. 基本知识三. 基本类型介绍1. 空类型(nil)2. 数值类型(number)3. 字符串类型(string)4. 布尔类型(boolean) 一. 变量类型介绍 Lua中一共有如下8中变量…

Linux:RAID磁盘阵列

目录 一、RAID(磁盘阵列) 1.1、概念 1.2、RAID 0(条带化存储) 1.3、RAID 1(镜像存储) 1.4、RAID 5 1.5、RAID 6 1.6、RAID 10 (先做镜像,再做条带) 二、创建RAID 2.1、建立RAID 0 …

利用 Docker 简化 Nacos 部署:快速搭建 Nacos 服务

利用 Docker 简化 Nacos 部署:快速搭建 Nacos 服务 引言 在微服务架构中,服务注册与发现是确保服务间通信顺畅的关键组件。Nacos(Dynamic Naming and Configuration Service)作为阿里巴巴开源的一个服务发现和配置管理平台&…

Spring事务及其传播机制(一)

目录 1.事务回顾 1.1什么是事务 1.2事务的四大重要特性(ACID) 1.3事务的操作 2.Spring中事务的实现 2.1编程式事务(了解) 2.2声明式事务Transactional 3.Transactional作用 3.1重新抛出异常 3.2手动回滚事务 1.事务回顾…

【Redis】SpringBoot连接Redis

1. 创建项目并配置文件 勾选NoSQL中的 Spring Data Redis。当然,把 Web 中的 SpringWeb 也勾选一下.方便写接口进行后续测试。 在 application.yml 中配置 2. 不同数据类型使用Demo 在SpringBoot中,为我们提供了StringRedisTemplate类,供我们处理一些文…

详细介绍MySQL的索引(上)

索引 索引概述 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结…

VisualStudio2019受支持的.NET Core

1.VS Studio2019受支持的.NET Core? 适用于 Visual Studio 的 .NET SDK 下载 (microsoft.com) Visual Studio 2019 默认并不直接支持 .NET 6 及以上版本。要使用 .NET 6 或更高版本,你需要在 Visual Studio 2019 中采取额外步骤,比如安装相应…

<电力行业> - 《第9课:输电(二)》

4 输送电能流程 输送电能总共有:发电站→升压变压器→高压输电线→降压变压器→用电单位等五个流程。 电力工业初期,发电厂建在电力用户附近,直接向用户送电,所以那个时候只有发电和用电两个环节。 随着电力生产规模和负荷中心规…

QTreeView第一列自适应

通过setStretchLastSection(bool stretch)可以设置最后一列自适应,对于QTreeView,stretch默认为true。但有时候我们需要设置第一列自适应,比如文件浏览器,共有名称、大小和修改日期三列,大小和日期的宽度几乎是固定的,但名称却可长可短,此时我们希望在窗口大小变化时,第…