【【萌新的STM32学习-13之GPIO寄存器的用法】】

news2024/12/27 9:40:48

萌新的STM32学习-13之GPIO寄存器的用法

从外部来看我们有很多个GPIO 分为ABCDEF等等
每个GPIO都有16个引脚 每个引脚的名字是PA0到PA15
这是外部的看法
对于内部 引脚自然会有引脚的功能传入的模式 状态 频率 等 那么我们就用剩下的内部的七个寄存器来搞定各个引脚的功能
第一个寄存器32位的分为CRL和CRH 各控制了PA0带PA7 或者是PA8 到PA15
因为我们工作模式多 所以设置了每4位来确定一个引脚的工作模式和速度 16x4=64 所以就需要2个32位的寄存器

下面是对这些总的一个总结
在这里插入图片描述
我们不仅需要注意传递进来的配置模式和频率
还需要注意是否是上拉还是下拉 这是由Px0DR这个寄存器决定的
在这里插入图片描述
ODR是端口输出寄存器 
它和IDR寄存器的用法是一样的 表示端口输出的是多少

IDR寄存器用来控制输入数据的寄存器
这个寄存器是用来只读的 比如说我们的整个寄存器名字是GPIOB-IDR 如果这个寄存器的名字是IDR0是1的话那就表示 PB0是1

BSRR是一个只写寄存器
在这里插入图片描述
为什么有了 ODR 寄存器,还要这个 BSRR 寄存器呢?我们先看看 BSRR 的寄存器描述,
首先 BSRR 是只写权限,而 ODR 是可读可写权限。BSRR 寄存器 32 位有效,对于低 16 位(0-
15),我们往相应的位写 1(BSy=1),那么对应的 IO 口会输出高电平,往相应的位写 0(BSy=0),
对 IO 口没有任何影响,高 16 位(16-31)作用刚好相反,对相应的位写 1(BRy=1)会输出低电
平,写 0(BRy=0)没有任何影响,y=0~15。
也就是说,对于 BSRR 寄存器,你写 0 的话,对 IO 口电平是没有任何影响的。我们要设置
某个 IO 口电平,只需要相关位设置为 1 即可。而 ODR 寄存器,我们要设置某个 IO 口电平,
我们首先需要读出来 ODR 寄存器的值,然后对整个 ODR 寄存器重新赋值来达到设置某个或者
某些 IO 口的目的,而 BSRR 寄存器直接设置即可,这在多任务实时操作系统中作用很大。BSRR
寄存器还有一个好处,就是 BSRR 寄存器改变引脚状态的时候,不会被中断打断,而 ODR 寄
存器有被中断打断的风险。

ODR和BSRR寄存器控制输出有什么区别
使用ODR在读和修改访问之间产生中断时,可能会发生风险 
BSRR则无风险

我们首先需要读出来 ODR 寄存器的值,然后对整个 ODR 寄存器重新赋值来达到设置某个或者某些 IO 口的目的,而 BSRR 寄存器直接设置即可
ODR修改: 读->改->写
BSRR修改 :   写 
建议大家使用BSRR寄存器来控制输出

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

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

相关文章

fatal: not a git repository (or any of the parent directories): .git

提示说没有.git这样一个目录 在命令行 输入 git init 然后回车就好了 git remote add origin https:/.git git push -u origin "master"

通达信指标公式13:涨跌星期密码升级2.0

★★★★★博文原创不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习小技巧,喜欢的老铁可以多多帮忙点赞,小红牛在此表示感谢,就是对作者的最大支持。愿与诸君共勉,悟道于股市★★★★★…

excel文本函数篇2

本期主要介绍LEN、FIND、SEARCH以及后面加B的情况: (1)后缀没有B:一个字节代表一个中文字符 (2)后缀有B:两个字节代表一个中文字符 1、LEN(text):返回文本字符串中的字符个数 2、…

【QT】progressBar的使用(13)

progressBar多用于记录程序运行的时间、文件下载的时间等等,今天就来看一下,如何熟练运用progressBar。 一.环境配置 1.python 3.7.8 可直接进入官网下载安装:Download Python | Python.org 2.QT Designer 官方下载路径:Qt…

三维模型OSGB格式轻量化的跨平台兼容性技术分析

三维模型OSGB格式轻量化的跨平台兼容性技术分析 在三维模型应用中,OSGB格式轻量化处理是一种常见的技术手段,可以通过数据压缩、简化、滤波等操作,降低三维模型数据的存储空间和传输带宽需求,提高应用程序的性能和用户体验。但是&…

UaExpert使用教程

1.安装好UaExpert后,填写下列信息 2.使用UaExpert作为client连接server(server可使用KEPServerEX 模拟服务端,或自己搭建一个测试服务,测试服务搭建代码点击获取) 点击“”号 填写配置名称,双击Custom …

APP外包开发需要注意的问题

在开发APP时,有许多问题需要注意,以确保应用的质量、安全性和用户体验。以下是一些常见的APP开发需要注意的问题,以及相应的解决方案,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#xff0…

uniapp-滑块验证组件wo-slider

wo-slider是一款支持高度自定义的滑块验证组件,采用uniapp-vue2编写 采用touchstart、touchmove、touchend事件实现的滑块组件,支持H5、微信小程序(其他小程序未试过,可自行尝试) 可到插件市场下载尝试: https://ext.…

Swift 周报 第三十五期

文章目录 前言新闻和社区五天市值蒸发 2000 亿美元,苹果公司怎么了?在你的 App 中帮助顾客解决账单问题需要声明原因的 API 列表现已推出 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第三十五…

算法通关村十二关 | 字符串转换

1. 转换小写字母 LeetCode709:给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 每个字母都是有确定的ASCII的,可以根据码表操作子字符串,常见的ASCII范围是: a-z: 97-122, …

LeetCode算法心得——k-avoiding 数组的最小总和(标记数组)

大家好,我是晴天学长,这是一个细节题和一部分的思维题哈! 2) .算法思路 k-avoiding 数组的最小总和 1,填充一个1到n 的Boolean的数组 要n个数,但是数组大小不能确定。 所以建立1000的大小。 2.遍历筛选,如果数组中有这…

中型敏捷GenAI模型:面向企业垂直领域应用的实用型AI

编者按:人工智能领域近年来模型规模不断增大,参数规模爆炸式增长。从 GPT-3 的 1,750 亿,再到传闻中的 GPT-4 可能高达惊人的 18,000 亿参数。然而,随着模型规模的不断膨胀,也出现了训练成本高昂、环境影响大、应用部署…

使用fdisk分区时,确实创建了一个分区,但是这个分区似乎并没有被Linux系统识别解决方法

使用fdisk分区时,确实创建了一个分区,但是这个分区似乎并没有被Linux系统识别解决方法 故障现象描述 这是我的sdb硬盘我想给他扩展一个分区sdb4 我开始扩展硬盘 似乎没用什么太大的问题也同步到磁盘了使用lsblk查看一下分区情况 系统并没有扫描到sdb4这…

Linux安装Net7SDK运行Net项目

安装Net7 SDK 1.安装sdk依赖环境 wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb2.安装 SDK sudo apt-get update &…

Grafana 安装配置教程

Grafana 安装配置教程 一、介绍二、Grafana 安装及配置2.1 下载2.2 安装2.2.1 windows安装 - 图形界面2.2.2 linux安装 - 安装脚本 三、Grafana的基本配置3.1 登录3.2 Grafana设置中文 四、grafana基本使用 一、介绍 Grafana是一个通用的可视化工具。对于Grafana而言&#xff0…

数据库国产化应用改造实践

近年来,随着国产化大潮不断推进和数据库分布式技术趋势发展,越来越多的企业开始选择国产数据库替换原有数据库。然而,核心数据库迁移又是“令人闻风丧胆”的IT操作,稍有不慎就有“删库跑路”的巨大破坏性。 由于国产数据库主要采用…

什么是SVM(支持向量机)

什么是SVM(支持向量机) 想要知道新拿到的水果是梨还是苹果,除了用KNN画个圈,还有什么好办法? 画条线好像也不错,通过将两者所在的空间做出区分。当新样本落在苹果一侧时,我们就认为它是苹果,反之就认为它…

10,000,000只800G光模块市场需求,你准备好了吗?

从今年5月起,各行业关于800G光模块的新闻此起彼伏,不断被讨论。华工正源、中际旭创、Coherent等公司纷纷发布公告提交业绩/投资调研会议记录,光迅6月也发布公告解释为何其股票突然大幅增长。到底是发生了什么事情,造成如此大的轰动…

爬虫异常处理:异常捕获与容错机制设计

作为一名专业的爬虫程序员,每天使用爬虫IP面对各种异常情况是我们每天都会遇到的事情。 在爬取数据的过程中,我们经常会遇到网络错误、页面结构变化、被反爬虫机制拦截等问题。在这篇文章中,我将和大家分享一些关于如何处理爬虫异常情况的经…

【操作系统】进程的基本概念进程的状态与转换进程的组织方式

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 操作系统 一、进程1.1概念1.2组成1.3特征 二、进程…