stm32 - GPIO

stm32 - GPIO

  • 基本结构
  • 输入
  • 输出

基本结构

所有GPIO都挂在APB2总线上
寄存器:内核通过APB2总线对寄存器进行读写,实现电平的读写
GPIO引脚的每一位对应寄存器中的某一位
GPIO中的驱动器是增加信号驱动能力的,用于增大驱动能力

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

输入

读取端口的高低电平或电压,ADC电压采集

输入电路引脚:

保护二极管 VDD/VSS用于电压限伏, 输入电压通过IO引脚超过系统电压则限制

输入的是外部电路的电平信号
施密特触发器对输入电压进行整形:如果输入电压大于某一预知,输出就会瞬间升为高电平;如果电压小于某一阈值,输出就会瞬间降为低电平(就是将模拟信号转化为数字信号)
经过施密特触发器就能直接写入输入数据寄存器

  • 上拉输入(常用)

给输入一个默认输入电平
默认高电平输入
上拉输出模式:寄存器直接读取IO端口电平

IO端口高电平:读取的就是高电平
IO端口低电平:读取的就是低电平
IO端口悬空无信号输入:读取的就是高电平
在这里插入图片描述

  • 下拉输入

给输入一个默认输入电平
默认低电平输入

下拉输出模式:寄存器直接读取IO端口电平

IO端口高电平:读取的就是高电平
IO端口低电平:读取的就是低电平
IO端口悬空无信号输入:读取的就是低电平

在这里插入图片描述

  • 浮空输入

两个都断开就是浮空输入模式
输入不确定

在这里插入图片描述

  • 模拟输入

连接片上外设,一般连接到ADC上 (ADC需要接收模拟量)

  • 复用功能输入
    在这里插入图片描述
    在这里插入图片描述

输出

控制端口输出高低电平,进行驱动负载,模拟通信协议输出时序
对于控制功率比较大的设备,加入驱动电路即可

输出的是微控制器内部的控制信号
输出可以通过内核控制输出数据寄存器或片上外设控制,通过数据选择器接到输出控制电路
操作输出数据寄存器中的某一位就可以操作对应的端口了

  • 推挽输出

P-MOS或N-MOS均有效

强推挽输出模式,高低电平均有较强的驱动能力
数据寄存器为1时,P-MOS导通,N-MOS断开,输出借到VDD,输出高电平
数据寄存器为0时,P-MOS断开,N-MOS导通,输出借到VSS,输出低电平

  • 开漏输出

P-MOS无效,只有N-MOS有效

只有低电平有驱动能力,高电平没有驱动能力
数据寄存器为1时,P-MOS无效,N-MOS断开,输出相当于断开,即高阻模式
数据寄存器为0时,P-MOS无效,N-MOS导通,输出借到VSS,输出低电平

  • 关闭模式

IO口配置成输入模式,即为关闭模式

  • 推挽复用输出

  • 开漏复用输出

位设置/清除寄存器,可以用来单独操作输出数据寄存器的某一位,而不影响其他位
P/N- MOS MOS就是一种电子开关,信号控制开关的导通和关闭,开关负责将IO口街道VDD或VSS

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识C语言·内存函数

目录 1 memcpy的使用和模拟实现 2 memmove的使用和模拟实现 3 memset的使用和模拟实现 4 memcmp的使用和模拟实现 1 memcpy的使用和模拟实现 紧接字符串函数,出场的是第一个内存函数memcpy。前面讲的字符串函数是专门干关于字符串的事的,而这个函数…

如何使用程序控制微信发送消息

简介 使用杨中科老师的nuget包NetAutoGUI,控制微信给指定用户发送消息,如果想下面视频一样使用此功能用来轰炸朋友,可以直接跳到最后一节,或者直接下载我的打包好的程序集 【免费】控制微信发送消息的程序资源-CSDN文库 微信轰炸…

蓝桥杯备赛 | 洛谷做题打卡day5

蓝桥杯备赛 | 洛谷做题打卡day5 图论起航,一起来看看深(广)度优先吧 ~ 文章目录 蓝桥杯备赛 | 洛谷做题打卡day5图论起航,一起来看看深(广)度优先吧 ~【深基18.例3】查找文献题目描述 输入格式输出格式样例…

《如何制作类mnist的金融数据集》——1.数据集制作思路

1.数据集制作思路(生成用于拟合金融趋势图像的分段线性函数) 那么如何去制作这样的一个类minist的金融趋势曲线数据集呢? 还是如上图所示,为了使类别平均分布,因此可以选取三种“buy”的曲线、三种“sell”…

Web前端 ---- 【Vue3】computed计算属性和watch侦听属性(侦听被ref和reactive包裹的数据)

目录 前言 computed watch watch侦听ref数据 ref简单数据类型 ref复杂数据类型 watch侦听reactive数据 前言 本文介绍在vue3中的computed计算属性和watch侦听属性。介绍watch如何侦听被ref和reactive包裹的数据 computed 在vue3中,计算属性computed也是组合式…

C语言天花板——指针(经典题目)

指针我们已经学习的差不多了,今天我来给大家分享几个经典的题目,来让我们相互学习🏎️🏎️🏎️ int main() {int a[4] { 1, 2, 3, 4 };int* ptr1 (int*)(&a 1);int* ptr2 (int*)((int)a 1);printf("%x,%…

Java重修第六天—面向对象3

通过学习本篇文章可以掌握如下知识 1、多态; 2、抽象类; 3、接口。 之前已经学过了继承,static等基础知识,这篇文章我们就开始深入了解面向对象多态、抽象类和接口的学习。 多态 多态是在继承/实现情况下的一种现象&#xf…

随笔03 笔记整理

图源:文心一言 关于我的考研与信息安全类博文整理~🥝🥝 第1版:整理考研类博文~🧩🧩 第2版:提前列出博文链接,以便小伙伴查阅~🧩🧩 第3版:整理We…

学习记录-自动驾驶与机器人中的SLAM技术

以下所有内容均为高翔大神所注的《自动驾驶与机器人中的SLAM技术》中的内容 融合导航 1. EKF和优化的关系 2. 组合导航eskf中的预测部分&#xff0c;主要是F矩阵的构建 template <typename S> bool ESKF<S>::Predict(const IMU& imu) {assert(imu.timestamp…

基于杂交PSO算法的风光储微网日前优化调度(MATLAB实现)

微网中包含&#xff1a;风电、光伏、储能、微型燃气轮机&#xff0c;以最小化电网购电成本、光伏风机的维护成本、蓄电池充放电维护成本、燃气轮机运行成本及污染气体治理成本为目标&#xff0c;综合考虑&#xff1a;功率平衡约束、燃气轮机爬坡约束、电网交换功率约束、储能装…

Elasticsearch_8.11.4_kibana_8.11.4_metricbeat_8.11.4安装及本地部署_ELK日志部署

文章目录 Elasticsearch_8.11.4_kibana_8.11.4_metricbeat_8.11.4安装及本地部署_ELK日志部署分布式引擎Elasticsearch_8.11.4安装及本地部署系统环境要求1 Windows 安装 Elasticsearch下载完成后进行解压,进入 bin 目录,找到elasticsearch.bat脚本文件执行一键启动.启动都选允…

【Python学习】Python学习15-模块

目录 【Python学习】Python学习15-模块 前言创建语法引入模块from…import 语句from…import* 语句搜索路径PYTHONPATH 变量-*- coding: UTF-8 -*-导入模块现在可以调用模块里包含的函数了PYTHONPATH 变量命名空间和作用域dir()函数globals() 和 locals() 函数reload() 函数Py…

ROS2学习笔记一:安装及测试

目录 前言 1 ROS2安装与卸载 1.1 安装虚拟机 1.2 ROS2 humble安装 2 ROS2测试 2.1 topic测试 2.2 小海龟测试 2.3 RQT可视化 2.4 占用空间 前言 ROS2的前身是ROS&#xff0c;ROS即机器人操作系统&#xff08;Robot Operating System&#xff09;,ROS为了“提高机器人…

原生js实现拖拽效果

<!DOCTYPE html> <html> <head> <style> #mydiv { width: 200px; height: 200px; background-color: red; position: absolute; cursor: move; } </style> | </head> <body> <div id"mydiv">拖拽我…

基于java web的机票管理系统设计与实现设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

机器学习扩散模型简介

一、说明 扩散模型的迅速崛起是过去几年机器学习领域最大的发展之一。在这本易于理解的指南中了解您需要了解的有关扩散模型的所有信息。 扩散模型是生成模型&#xff0c;在过去几年中越来越受欢迎&#xff0c;这是有充分理由的。仅在 2020 年代发布的几篇开创性论文就向世界…

socket.io分房间交流

基本详情看这里 Socket.IO 是一个库,可以在客户端和服务器之间实现 低延迟, 双向 和 基于事件的 通信. 效果展示 安装依赖 // 后端插件安装 npm i socket.io -S // 前端插件安装 npm i socket.io-client -S 前端搭建及逻辑 <script setup> import { ref, onMounted…

机器学习 | 卷积神经网络

机器学习 | 卷积神经网络 实验目的 采用任意一种课程中介绍过的或者其它卷积神经网络模型&#xff08;例如LeNet-5、AlexNet等&#xff09;用于解决某种媒体类型的模式识别问题。 实验内容 卷积神经网络可以基于现有框架如TensorFlow、Pytorch或者Mindspore等构建&#xff…

Vue2脚手架配置教程IDEA配置VUE

5.12.3 Vue Cli 文档地址: https://cli.vuejs.org/zh/ IDEA 打开项目&#xff0c;运行项目

React 原理

函数式编程 纯函数 reducer 必须是一个纯函数&#xff0c;即没有副作用的函数&#xff0c;不修改输入值&#xff0c;相同的输入一定会有相同的输出不可变值 state 必须是不可变值&#xff0c;否则在 shouldComponentUpdate 中无法拿到更新前的值&#xff0c;无法做性能优化操作…