【单片机基础小知识-如何通过指针来读写寄存器】

news2024/11/25 22:52:00

寄存器的本质就是内存,RAM,而指针是可以对内存进行操作的,因此可以通过指针来读写寄存器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何读取以下一片地址:
在这里插入图片描述

步骤1、首地址
在这里插入图片描述
结构体,它所占用的内存空间大小与它内部成员有关。
构造一个28字节的类型

typedef struct{  //每个模块都有几个寄存器,而这几个寄存器都是按照顺序连续排放在内存中,只要找到首地址,也就是读数据的第一个地址,需要告知(地址+数据类型)
	unsigned int CRL;  //1-4
	unsigned int CRH;  //5-8
	unsigned int a3;  //9-12
	unsigned int a4;  //13-16
	unsigned int a5;
	unsigned int a6;
	unsigned int a7;
}GPIO_A;
//现在我们访问一个变量,这个变量是一个结构体,一共占用了28个字节,那么这个指针也必须是这个结构体类型的,这称为强制类型转换
#define MyGPIOA ((GPIO_A*)0x40010800)  //首先告诉CPU这是一个地址,这个地址读什么类型的数据呢,读结构体类型的数据,那么这个结构体类型的数据占用28字节空间,我们给这个指针取了一个名字,MyGPIOA
int main(void){
	int a = 2;  //int 类型数据,需要通过int类型的指针读取该数据
	int *p;
	p = &a;
	MyGPIOA->CRH = 2; //通过这种方式对寄存器进行操作
	
	while(1)
	{

	}
}

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

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

相关文章

nginx知识点-1

#因为是最小化安装,先安装vim编辑器,net-tools查看端口,psmisc可以使用killall命令bash-completion tab补全命令(需要重启生效)[rootlocalhost ~]# yum -y install net-tools psmisc vim bash-completion [rootlocalhost ~]# tar zxvf nginx-…

报错Could not resolve placeholder ‘driver‘ in value “${driver}“

这是我的报错: 原因是我的applicationContext.xml文件加载properties文件径错误: 应该把路径改成这样就可以了:

强化学习中值的迭代

一、价值的迭代 策略迭代的一个缺点是,其每次迭代都涉及策略评估,这本身可能是一个漫长的迭代计算,需要多次遍历状态集。如果策略评估是迭代进行的,那么只有当趋近于vπ时才会收敛。我们是否必须等待完全收敛,还是可以…

mac电脑系统清理软件CleanMyMac X2024破解版下载

基本上,不管是win版还是Mac版的电脑,其装机必备就是一款电脑系统清理软件,就比如Mac,目前在市面上,电脑系统清理软件是非常多的。 对于不熟悉系统的用户来说,使用一些小众工具,往往很多用户都不…

如何快速部署Apache服务器并使用内网穿透实现远程连接

Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpo…

nacos配置中心docker部署、配置及 goLang 集成使用

为什么需要配置中心 平时我们写一个demo的时候,或者说一个单体的应用,都会有一个配置文件,不管是 json文件或者yaml文件,里面包含了redis,mysql,es等信息,如果我们修改了配置文件,往往我们需要重启&#x…

【面试题01】找出数组中的最长前缀

题目1:如图,finally中的输出语句会执行吗?(另外自己去考虑虚拟机退出、catch中抛异常、try中抛异常、守护线程等相关问题) 题目2:Byte"hello"报错吗?Byte7报错吗? 不会报…

服务器的操作系统,你选择哪些?

OpenCloudOS CentOS CentOS Stream Ubuntu Debian Windows Server

【c++】——类和对象(中)——默认成员函数(上)

【学习目标】 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 目录 一.类的6个默认成员函数 二. 构造函数 2.1 概念 2.2.特性 三.析构函数 3.1.概念 3.2 特性 四.拷贝构造函数 4.1.概念 4.2.特性 一.类的6个默认成员函数 如果一个类中什么成员…

解决 SSLError: HTTPSConnectionPool(host=‘huggingface.co‘, port=443)

看我的回答: https://github.com/huggingface/transformers/issues/17611#issuecomment-1794486960 能问这个问题的都是网络不太好的,你懂的,所以答案全是解决网络的。 得益于这个回答:#17611 (comment) 看了一下代码&#xf…

Apache Doris (五十三): Doris Join类型 - Shuffle Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. shuffle Join的原理

学信息系统项目管理师第4版系统36_结语

1. 尘埃落定 10月28日首考,到11月5日结束,尘埃落定,尘归尘、土归土了。 软考机考第一次吃螃蟹,几家欢喜几家愁,高项的选择题和案例题反馈简单,原书原文的考法,不过属于犄角旮旯那种。 中级则普…

GPT-4V:AI在教育领域的应用

OpenAI于9月25日发布了最新的GPT-4V模型,为ChatGPT引入了语音和图像功能,为用户提供更多元化的使用方式。这次更新将为用户带来更便捷、直观的交互体验,用户可以直接拍照上传并针对照片内容提出问题。OpenAI的最终目标是构建安全、有益的人工…

WindowsServer2019-搭建FTP服务器

这里写自定义目录标题 一、基础配置IP地址安装FTP服务检查连通性Windows10连接FTP服务 二、了解和使用FTP具体模块及其配置1、FTP IP地址和域限制2、FTP SSL设置3、FTP当前会话4、FTP防火墙5、FTP目录浏览6、FTP请求筛选7、FTP日志8、FTP身份验证9、FTP授权规则10、FTP消息11、…

数据结构(五):哈希表及面试常考的算法

一、哈希表介绍 1、定义 哈希表,也叫散列表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。例如,下列键(key)为人名&#xf…

5、Python中的变量和表达式:变量的定义、赋值和数据类型转换

文章目录 Python中的变量和表达式:变量的定义、赋值和数据类型转换变量的定义变量的赋值数据类型转换注意事项表达式总结Python中的变量和表达式:变量的定义、赋值和数据类型转换 Python是一种高级编程语言,以其简洁明了的语法和强大的功能而闻名。在Python编程中,变量和表…

docker安装达梦数据库镜像并初始化实例设置数据库大小写不敏感

全文参考文章Docker - 通过容器安装部署达梦数据库教程 以及docker安装达梦V8数据库 UTF-8及大小写敏感问题 一、安装部署达梦数据库 下载完成之后使用FileZilla上传到服务器上面 启动命令 创建dm8的容器并设置大小写不敏感运行 docker run -d -p 5236:5236 \ --restartalwa…

链式前向星模板

建稠密图可以用邻接矩阵,但稀疏图再用邻接矩阵就很浪费空间了,有可能会爆空间复杂度。 可以用邻接表来实现邻接表建图,两种方法:1.链表 2.链式前向行 只讲第二种,比较常用简洁 链式前向星模板 #define IOS ios::syn…

详解vue3的ref和reactive

目录 Vue3是目前前端领域最受欢迎的JavaScript框架之一,它的核心是响应式数据系统。因此,Vue3的ref和reactive成为了Vue3的核心特性之一。通过使用这两个特性,我们能够轻松地构建出高效、可维护的Vue3应用程序。在本文中,我们将详…

CoTTA:连续的测试时域自适应方法

文章信息 论文题目为《Continual Test-Time Domain Adaptation》,该文于2022年发表于Conference on Computer Vision and Pattern Recognition (CVPR)会议上。文章提出了一种持续的测试时域自适应方法(CoTTA),旨在应对非稳态和不断…