当前位置: 首页 > news >正文

STM32 GPIO的工作原理

STM32的GPIO管脚有下面8种可能的配置:(4输入 +2 输出 +2 复用输出)


(1)浮空输入_IN_FLOATING

        在上图上,阴影的部分处于不工作状态,尤其是下半部分的输出电路,实际上是与端口处于隔离状态。黄色的高亮部分显示了数据传输通道,外部的电平信号通过左边编号1的I/0 端口进入STM32,经过编号2的施密特触发器的整形送入编号3的“输入数据寄存器”,在“输入数据寄存器”的另一端(编号4),CPU可以随时读出1/0 端口的电平状态

(2)带上拉输入_ IPU  

上拉电阻30k-50k起抗干扰作用。 

(3)带下拉输入_IPD


(4)模拟输入_AIN


(5)开漏输出_OUT_OD


(6)开漏复用输出_AF_OD


(7)推挽输出_OUT_PP


(8)推挽复用输出_AF_PP 

      STM32的每个 I0端口都有7个寄存器来控制。他们分别是:配置模式的2 个32 位的端口配置寄存器CRL和CRH; 2个32 位的数据寄存器IDR 和ODR;1个32 位的置位/复位寄存器BSRR;1个 16位的复位寄存器 BRR;1个32位的所存寄存器LCKR;常用的I0端口寄存器只有4个:CRL、CRH、IDR、ODR 。

32 位的端口配置寄存器CRL和CRH

寄存器复位值为0x44444444,CRL控制的是低8位输出口,CRH控制的是高8位输出口。

0X4表示模拟输入模式(ADC用);0X3表示推挽输出模式(做输出口,50M速率);0X8表示上下拉输入模式(做输入口用);0XB表示复用输出(使用IO口的第二功能,50M速率)。

给个实例,比如我们要设置PORTC的11 位为上拉输入,12位为推挽输出。代码如下:

GPIOC->CRH&=0XFFF00FFF;//清掉这 2个位原来的设置,同时也不影响其他
位的设置
GPIOC->CRH|=0X0003800;//PC11输入,PC12输出
GPIOC->ODR=1<<11://PC11上拉

 32 位的数据寄存器IDR 和ODR

相关文章:

STM32 GPIO的工作原理

STM32的GPIO管脚有下面8种可能的配置:&#xff08;4输入 2 输出 2 复用输出) &#xff08;1&#xff09;浮空输入_IN_FLOATING 在上图上&#xff0c;阴影的部分处于不工作状态&#xff0c;尤其是下半部分的输出电路&#xff0c;实际上是与端口处于隔离状态。黄色的高亮部分显示…...

板级调试小助手(2)ZYNQ自定义IP核构建属于自己的DDS外设

一、前言 在上期文章中讲述了小助手的系统结构和原理。在PYNQ的框架开发中&#xff0c;我们一般可以将PL端当做PS端的一个外设&#xff0c;通过读写寄存器的方式来操作外设的功能&#xff0c;就类似于在开发ARM和DSP中操作外设一样&#xff0c;不同时的是&#xff0c;我们可以通…...

vim+cscope+ctags

一、简单安装 1.安装cscope # apt install cscope 2.安装ctags # apt install ctags 3.taglist安装 下载Vim source code browser plugin - Browse /vim-taglist at SourceForge.net&#xff0c;解压和复制文件 # unzip taglist_46.zip# cp doc/taglist.txt /usr/share/…...

Java 8的变革:函数式编程和Lambda表达式探索

文章目录 一、函数接口二、Lambda表达式简介三、Lambda表达式外部参数四、Lambda范例五、Runnable Lambda表达式 一、函数接口 函数接口是一个具有单个抽象方法的接口&#xff0c;接口设计主要是为了支持 Lambda 表达式和方法引用&#xff0c;使得 Java 能更方便地实现函数式编…...

Java集合框架的内部揭秘:List、Set与Map的深潜之旅

Java集合框架是一套强大的工具&#xff0c;为开发者提供了灵活的数据管理方式。本文将深入剖析List、Set和Map的内部机制&#xff0c;通过详细的示例和扩展讨论&#xff0c;带你领略这些数据容器的真谛。 一、List&#xff1a;有序序列的深度剖析 List接口是一个可以包含重复…...

爬虫(二)——爬虫的伪装

前言 本文是爬虫系列的第二篇文章&#xff0c;主要讲解关于爬虫的简单伪装&#xff0c;以及如何爬取B站的视频。建议先看完上一篇文章&#xff0c;再来看这一篇文章。要注意的是&#xff0c;本文介绍的方法只能爬取免费视频&#xff0c;会员视频是无法爬取的哦。 爬虫的伪装 …...

空安全编程的典范:Java 8中的安全应用指南

文章目录 一、Base64 编码解码1.1 基本的编码和解码1.2 URL 和文件名安全的编码解码器1.3 MIME Base64编码和解码 二、Optional类三、Nashorn JavaScript 一、Base64 编码解码 1.1 基本的编码和解码 Base64 编码&#xff1a; 使用 Base64.getEncoder().encodeToString(origin…...

Docker Machine 深入解析

Docker Machine 深入解析 引言 Docker Machine 是 Docker 生态系统中的一个重要工具,它简化了 Docker 容器环境的配置和管理过程。本文将深入探讨 Docker Machine 的概念、功能、使用场景以及如何在实际环境中高效利用它。 什么是 Docker Machine? Docker Machine 是一个…...

20.x86游戏实战-远线程注入的实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…...

06MFC之对话框--重绘元文件

文章目录 实现示例展示需要绘制的窗口/位置控件位置更新下一次示例粗细滑动部分更新重绘元文件(窗口变化内容消失)方法一:使用元文件方法二:兼容设备方法三:使用自定义类存储绘图数据除画笔外功能处理画笔功能处理保存前面画的线及色彩实现示例展示 需要绘制的窗口/位置 …...

鼠标的发明和鼠标“变形记”

注&#xff1a;机翻&#xff0c;未校对。 Who Invented the Computer Mouse? 谁发明了电脑鼠标&#xff1f; It was technology visionary and inventor Douglas Engelbart (January 30, 1925 – July 2, 2013) who revolutionized the way computers worked, turning it fr…...

快捷:通过胶水语言实现工作中测试流程并行、加速

通过胶水语言实现工作中测试流程并行、加速 通过胶水语言实现工作中测试流程并行、加速工作场景&#xff08;背景&#xff09;问题抽象&#xff08;挑战&#xff09;如何做&#xff08;行动&#xff09;获得了什么&#xff08;结果&#xff09;后记相关资源 通过胶水语言实现工…...

MySQL 和 PostgreSQL,我到底选择哪个?

MySQL 和 PostgreSQL 是两个广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;。它们都具有强大的功能和广泛的社区支持&#xff0c;但在某些方面存在一些差异。本文将详细比较 MySQL 和 PostgreSQL&#xff0c;包括它们的特点、性能、扩展性、安全性以及适用场景等…...

Java —— 内部类

Java内部类 1.什么是内部类&#xff1f; 将一个类A定义在另一个类B里面&#xff0c;里面的类A就称为内部类&#xff08;InnerClass&#xff09;&#xff0c;类B则称为外部类&#xff08;OuterClass&#xff09;。 2.为什么需要内部类&#xff1f; 具体来说&#xff0c;当一…...

高职院校人工智能人才培养成果导向系统构建、实施要点与评量方法

一、引言 近年来&#xff0c;人工智能技术在全球范围内迅速发展&#xff0c;对各行各业产生了深远的影响。高职院校作为培养高技能人才的重要基地&#xff0c;肩负着培养人工智能领域专业人才的重任。为了适应社会对人工智能人才的需求&#xff0c;高职院校需要构建一套科学、…...

ffmpeg中的超时控制

在FFmpeg库中&#xff0c;很多函数没有直接的参数可以设置超时。 那么有哪些函数可以通过设置 AVFormatContext 的 interrupt_callback 来实现超时控制&#xff1f; avformat_open_input&#xff1a; 打开输入文件或流。这个函数会阻塞&#xff0c;尤其是在网络流的情况下&…...

搜维尔科技:【研究】触觉技术将在5年内以8种方式改变人们的世界

触觉技术在过去几年中发展迅猛&#xff0c;大大提高了反馈的精确度和真实度。其应用产生了真正的影响&#xff0c;数百家公司和企业都集成了触觉技术来增强培训和研究模拟。 虽然触觉技术主要用于 B2B 层面&#xff0c;但触觉技术可能会彻底改变我们的生活&#xff0c;尤其是通…...

项目收获总结--MyBatis的知识收获

MyBatis的知识收获 一、概述二、获取自动生成的(主)键值三、将sql执行结果封装为目标返回对象的方式和原理四、延迟加载实现原理五、批量插入六、自带分页与分页插件原理七、Mapper(Dao)接口与XML映射文件关系八、模糊查询like语句九、#{}和${}的区别十、二级缓存案例实战 一、…...

数据库管理-第221期 Oracle的高可用-04(20240717)

数据库管理221期 2024-07-17 数据库管理-第221期 Oracle的高可用-04&#xff08;20240717&#xff09;1 ADG2 连接配置2.1 TNS2.2 JDBC2.3 JAVA连接池2.3.1 Oracle UCP2.3.2 应用连接池基础配置 总结 数据库管理-第221期 Oracle的高可用-04&#xff08;20240717&#xff09; 作…...

navicat15已连接忘记密码

1.导出链接 2.使用文本打开 connections.ncx UserName"root" PasswordXXXX 3.复制加密密码&#xff0c;在线解密 代码在线运行 - 在线工具 php解密代码 <?php class NavicatPassword {protected $version 0;protected $aesKey libcckeylibcckey;protected…...

企业管理必备:学会寻找客户绝佳方法。

无论是日常沟通、工作交流&#xff0c;还是社交娱乐&#xff0c;微信都扮演着重要的角色。而在微信的使用过程中&#xff0c;添加好友是一项基本而重要的操作&#xff0c;但是您真的会添加微信好友吗&#xff1f; 试试这个神器——微信管理系统&#xff0c;下面分享它快速加客…...

昇思25天学习打卡营第29天 | 文本解码原理--以MindNLP为例

今天是29天&#xff0c;学习了文本解码原理--以MindNLP为例。 MindNLP 是一个基于 MindSpore 的开源自然语言处理&#xff08;NLP&#xff09;库。它具有以下特点&#xff1a; 支持多种 NLP 任务&#xff1a;如语言模型、机器翻译、问答、情感分析、序列标记、摘要等&#xff…...

元服务体验-服务发现

服务发现&#xff0c;无论线上或线下的方式都可以发现元服务。 线上&#xff1a;基于用户意图。从精准意图的搜索、用户事件触发的推荐到主动探索等场景。用户可以在设备的负一屏、全局搜索、应用市场、桌面等场景发现元服务。 线下&#xff1a;用户在 HarmonyOS Connect标签…...

设计模式学习(二)工厂模式——抽象工厂模式+注册表

设计模式学习&#xff08;二&#xff09;工厂模式——抽象工厂模式注册表 前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点&#xff1a;①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用…...

同三维T80004解码器视频使用操作说明书:高清HDMI解码器,高清SDI解码器,4K超清HDMI解码器,双路4K超高清解码器

同三维T80004解码器视频使用操作说明书&#xff1a;高清HDMI解码器&#xff0c;高清SDI解码器&#xff0c;4K超清HDMI解码器&#xff0c;双路4K超高清解码器 同三维T80004解码器系列视频使用操作说明书&#xff1a;高清HDMI解码器&#xff0c;高清SDI解码器&#xff0c;4K超清H…...

Flutter应用开发:掌握StatefulWidget的实用技巧

前言 随着移动应用的日益复杂&#xff0c;状态管理成为了 Flutter 应用开发中的一项重要挑战。 状态&#xff0c;即应用中的可变数据&#xff0c;它驱动着用户界面的渲染和交互。 在 Flutter 这样的声明式 UI 框架中&#xff0c;如何高效、可维护地管理状态&#xff0c;对于…...

SCADA系统在哪些行业中取得了不斐的成绩!

随着技术的发展&#xff0c;SCADA系统已经历了多代的发展。从基于专用计算机和专用操作系统的第一代SCADA系统&#xff0c;到基于通用计算机和通用操作系统的第二代&#xff0c;再到按照开放原则基于分布式计算机网络以及关系数据库技术的第三代&#xff0c;以及现在基于更高技…...

layui 监听弹窗关闭并刷新父级table

记录&#xff1a;easyadmin 监听弹窗关闭并刷新父级table 场景一&#xff1a;在二级页面的table中点击编辑&#xff0c;保存后刷新二级页面的table edit: function () {ea.listen(function (data) {return data;}, function (res) {ea.msg.success(res.msg, function () {var …...

Webpack详解

Webpack Webpack 是一个现代 JavaScript 应用程序的静态模块打包器&#xff08;module bundler&#xff09;。它允许开发者将项目中的资源&#xff08;如 JavaScript、CSS、图片等&#xff09;视为模块&#xff0c;通过分析和处理这些模块之间的依赖关系&#xff0c;将它们打包…...

杰发科技AC7801 —— __attribute__指定地址存储常量

const uint8_t usFlashInitVal[] __attribute__((at(0x08002800))) {0x55,0x55,0x55,0x55,0x55};//定位在flash中&#xff0c;0x00030000开始的6个字节信息固定 注意7801的地址在8000000之后 如地址选0x00000800烧录时候报错 不知道是不是atclinktool的bug&#xff0c;使用_…...

wordpress可以做电影网站吗/移动排名提升软件

普通ASCII码空格为32&#xff0c;但是浏览器会对普通空格进行自动归并&#xff0c;也就是如果你输入10个0x20的空格在HTML页面里面&#xff0c;可能会被合并成一个空格。如果想要一致的呈现多个空格&#xff0c;就要用到&nbsp&#xff0c;这个空格的编码为160&#xff0c;为…...

深圳网站建设外贸/营销策划方案1000例

1、配置不同环境的打包命令 转载于:https://www.cnblogs.com/qdlhj/p/10283225.html...

医院网络营销推广方案/网站优化排名网站

7月15日消息&#xff0c;据《纽约时报》报道&#xff0c;日本即时通信应用开发商Line Corporation周四成功登陆美国纽约证交所&#xff08;NYSE&#xff09;&#xff0c;并在交易首日暴涨超30%。如此傲人的成绩让科技初创企业又重心找回了对华尔街投资者的热情和信心。 不过一些…...

课程网站建设毕业设计/网站优化软件费用

许可证编译器 (Lc.exe) 的作用是读取包含授权信息的文本文件&#xff0c;并产生一个可作为资源嵌入到公用语言运行库可执行文件中的 .licenses 文件。 在使用第三方类库时&#xff0c;经常会看到它自带的演示程序中&#xff0c;包含有这样的Demo许可文件 Infragistics.Win.Misc…...

主题资源网站建设 模块五作业/小程序开发模板

一、倒计时CountDownLatchCountDownLatch是一个非常实用的多线程控制工具类&#xff0c;称之为“倒计时器”&#xff0c;它允许一个或多个线程一直等待&#xff0c;直到其他线程的操作执行完后再执行。举了例子&#xff1a;我们知道的集齐七颗龙珠就可以召唤神龙&#xff0c;那…...

建立个人网站主题/最近一周的新闻热点事件

二叉搜索树(BST) 是满足以下要求的二叉树&#xff1a; 父节点的值大于其左子树的所有值。 父节点的值小于其右子树的所有值。 以下是 BST 的示例&#xff1a; 如果我们想从 BST 中删除一个节点&#xff0c;我们基本上有 3 种不同的情况&#xff1a; 删除叶节点 例如&#x…...