【五一创作】《嵌入式系统》知识总结7:GPIO寄存器

news2024/10/1 21:44:36

总述

每组端口具有7个寄存器

• 实现对GPIO端口初始化配置和数据输入输出控制

1. 配置寄存器:GPIOx_CRL、GPIOx_CRH 用来选择引脚功能,例如输入或输出

2. 数据寄存器:GPIOx_IDR、GPIOx_ODR 用来保存引脚输入电平或输出电平

3. 位控寄存器:GPIOx_BSRR、GPIOx_BRR 用来控制某引脚为1或0

4. 锁定寄存器:GPIOx_LCKR 用来锁定引脚配置(不允许修改)

 每个寄存器只能以32位(字)进行访问

• 不允许16位(半字)或8位(字节)访问

GPIO的引脚配置

两个32位(一个64位)配置寄存器

每4位对应一个引脚(64位对应16个引脚)

• 低2位设置其工作模式(MODE)

• 高2位设置其配置(CNF:Configuration)

共有4种输入功能、4种输出功能

1. GPIO的配置寄存器

每组端口有两个32位配置寄存器

• 配置寄存器低(Low)字GPIOx_CRL

• 配置寄存器高(High)字GPIOx_CRH (x是A~G)

配置寄存器低字CRL低8位对应配置

低8位引脚引脚Px0、Px1、 ……Px7

配置寄存器高字CRH对应配置

高8位引脚Px8、Px9、 ……Px15

2. GPIO的数据寄存器

每组端口有两个32位数据寄存器

• 一个是输入数据寄存器IDR

• 一个是输出数据寄存器ODR

• 都只使用其低16位、依次对应每组16个GPIO引脚

当设置GPIO引脚为输入模式时

• 从输入数据寄存器GPIOx_IDR的相应位读出输入值

• 读到1表示该I/O引脚为高电平、读到0表示该引脚为低电平

当配置GPIO引脚为输出模式时

• 向输出数据寄存器GPIOx_ODR相应位写入1或0

• 写入1控制该I/O引脚为高、写入0控制该引脚为低电平

3. GPIO的位控寄存器

每个端口有两个位控寄存器

• 只能写入、不能读出

• 某位写入1实现I/O引脚复位或置位

• 写入0对I/O引脚无影响(作用)

一个是位置位/复位寄存器BSRR

• 高16位控制引脚为低电平(复位BR:Bit Reset)

• 低16位控制引脚为高电平(置位BS:Bit Set)

一个是位复位寄存器BRR

• 低16位控制引脚为低电平(复位BR:Bit Reset)

4. GPIO的锁定寄存器(x=A..E)

端口配置锁定寄存器GPIOx_LCKR(32位)

• 用于冻结配置寄存器对I/O引脚功能的设定

当对端口执行了写入锁定序列后

• 被锁定引脚配置的工作模式不能再改变

• 直到下次复位后才被解锁

锁定功能可以防止程序随意改变GPIO配置

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

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

相关文章

数据库管理-第七十一期 五一,休息?(20230503)

数据库管理 2023-05-03 第七十一期 五一,休息?1 备份2 两个DDL3 问题处理4 问题排查总结 第七十一期 五一,休息? 好不容易,熬过万恶的6天班来到了五一假期,想着好好休息,顺便把绝地幸存者给通关…

Java 基础进阶篇(九)—— 常用 API

文章目录 一、Object 类二、Objects 工具类三、Math 类四、System 类五、BigDecimal 类 一、Object 类 一个类要么默认继承了 Object 类,要么间接继承了 Object 类,Object 类是 java 中的祖宗类。Object 类的方法是一切子类都可以直接使用的。 因此&…

Obsidian +Obsidian Git插件 + Gitee 自动同步笔记

在Obsidian 关闭安全模式 然后再插件市场里面搜索并下载Obsidian Git 这个插件 注意:这里需要科学上网才能搜索并下载,我看很多博主都没说这件事情 然后再你的Gitee中,新建一个仓库 把这两个勾选上,然后随便选个语言&#xff0…

【JavaEE】应用层UDP协议

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 本篇文章将为大家介绍应用层中UDP协议~~ 在应用层这里,虽然存在一些现有的协议(HTTP),但是也有很多情况,需要程序猿自定制协议&a…

Windeployqt 打包,缺少DLL 的原因分析,解决方法

很多同学使用工具windeployqt进行打包发布后,运行exe文件时,还是会出现下图所示的系统错误提示,这种情况就表示相关的DLL 库文件没有被正确打包。可是windeployqt明确显示运行正常啊,难道是QT自家的windeployqt这个工具有bug&…

2024年浙大MBA创客班项目提面如何申请?

2024年浙大MBA创客班提面如何申请?在目前的提前批面试申请过程中不少考生都不太清楚,专注浙大的杭州达立易考教育本期将项目的提前批面试和常规批复试申请基本流程和关键信息整理出来,帮助考生更精准的进行面试准备。 一、浙大MBA创客班项目…

基于比较排序算法总结

1.数据无法全部放入内存 2.数据以数据流形式

操作系统2(多处理器编程)

一、并发 1.操作系统是最早的并发程序之一 2.并发的基本单位:线程 共享内存的多个执行流 执行流拥有独立的堆栈/寄存器共享全部的内存(指针可以互相引用) 3.实现原子性 lock(&lk)unlock(&lk) 实现临界区(critical section)之间…

keepalived脑裂现象

Keepealived最常见的问题是会出现脑裂现象: Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占mas…

Snmputil和Snmputilg工具的下载和基本使用 SNMP协议 Windows系统SNMP服务的安装教程

⬜⬜⬜ ---🟧🟨🟩🟦🟪 (*^▽^*)欢迎光临 🟧🟨🟩🟦🟪---⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→…

现代CMake高级教程 - 第 7 章:变量与缓存

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 7 章:变量与缓存 重复执行 cmake -B build 会有什么区别? ❯ cmake -B build -- The C compiler identification is GNU 11.3.0 -- The CXX compiler identification is GNU 11.3.0 -- Detec…

C++:分治算法之输油管道问题

目录 描述 输入 输出 输入样例 输出样例 分析 代码 运行结果 描述 ¢ 某石油公司计划建造一条 由东向西 的主输油管道。该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。 ¢ 如果给定…

如何区分GPT3.5和4?

切换模型 前两天申请的GPT 4的API调用权限终于申请下来了。 这两天我也是抓紧开发,让自己搭建的国内网站(aichatroom.cn)可以快速支持上使用GPT 4。 GPT 3.5和GPT4的区别 GPT-3.5 和 GPT-4 分别代表了 OpenAI 发布的两个不同版本的自然语言处…

现代CMake高级教程 - 第 4 章:对象的属性

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 4 章:对象的属性 除了 POSITION_INDEPENDENT_CODE 还有哪些这样的属性? add_executable(main main.cpp)set_property(TARGET main PROPERTY CXX_STANDARD 17) # 采用 C17 标准进行编译&am…

STC15W104 8脚单片机串口下载程序

单片机串口下载是一种常见的单片机程序下载方式,它通过串口线连接单片机的串口引脚和电脑的串口接口实现。下面是单片机串口下载的基本原理和操作方法: 原理 确定下载模式:大多数单片机芯片都支持串口下载模式,需要在程序中设置…

常识性概念图谱建设与应用

目录 一、知识图谱背景介绍 (一)基本背景 (二)与NLP的关系 (三)常识性概念图谱的引入对比 二、常识性概念图谱介绍 (一)常识性概念图谱关系图示例 (二&#xff09…

深度学习-tensorflow 使用keras进行深度神经网络训练

概要 深度学习网络的训练可能会很慢、也可能无法收敛,本文介绍使用keras进行深度神经网络训练的加速技巧,包括解决梯度消失和爆炸问题的策略(参数初始化策略、激活函数策略、批量归一化、梯度裁剪)、重用预训练层方法、更快的优化…

linux进程描述指令:ps与top

这里写自定义目录标题 一 ps指令1 ps -aux2. ps -a3. ps -u4.ps -x 二 top指令1 top2 top -d 时间3. top -i4 top -p ID 一 ps指令 1 ps -aux 显示系统中的所有进程 PID就是进程的唯一编号,操作系统书里有一个PCD的概念,就是一个标识性的控制单元 [ro…

学系统集成项目管理工程师(中项)系列16b_风险管理(下)

1. 规划风险应对 1.1. 针对项目目标,制订提高机会、降低威胁的方案和措施的过程 1.2. 制订风险应对措施 1.3. 制订风险应对计划 1.4. 次生风险是实施风险应对措施的直接结果 1.5. 应对措施必须与风险的重要性相匹配,能经济有效地应对挑战 1.5.1. 【…

项目管理-计算专题(三点估算、PERT估算)

基本概念 通过考虑估算中的不确定性和风险,可以提高活动持续时间估算的准确性。这个概念源自计划评审技术(PERT)。PERT使用三种估算值来界定活动持续时间的近似区间: 最可能时间(tM):基于最可能获得的资源、最可能取得的资源生产率、对资源可用时间的现…