STM32 GPIO的几种工作模式

介绍STM32 GPIO的几种工作模式

1、输出模式

在这里插入图片描述

   STM32的引脚输出有两种方式:
      1、推挽输出
      2、开漏输出

1.1 推挽输出

    当引脚设置为推挽输出时,P-MOS和N-MOS共同配合工作。
    当使用HAL库

//该函数的作用就是将P-MOS导通,N-MOS关闭
HAL_GPIO_WritePin(XXX, XXX, 1);
//该函数的作用就是将P-MOS关闭,N-MOS导通
HAL_GPIO_WritePin(XXX, XXX, 0);

在这里插入图片描述
    如上图,当led1的一端接地,另一端接stm32的一个引脚,此时我们可以用推挽输出,输出高低电平来控制小灯的亮灭。

1.2、开漏输出

    开漏输出下,只有N-MOS工作,P-MOS一直处于断开状态。

//N-MOS断开
HAL_GPIO_WritePin(XXX, XXX, 1);

    整个IO口内部处于高阻态,或者说断路,不对外输出电平。

//N-MOS导通
HAL_GPIO_WritePin(XXX, XXX, 0);

    IO口对外输出低电平。
在这里插入图片描述

    如上图,当led2的一端接5v,另一端接在mcu的引脚上。我们可以使用开漏输出控制小灯的亮灭。当write 1时,断路,小灯灭。write 0 时小灯左侧接地右侧接5v,亮。

1.3、输出模式总结

    1、推挽输出小灯是由来自芯片的电压所驱动。
    2、开漏输出没有驱动能力,必须依靠外部的电压源来进行驱动小灯亮灭。

推挽输出开漏输出
高电平P-MOS激活、N-MOS断开,3.3VP-MOS断开、N-MOS断开
低电平P-MOS断开、N-MOS激活P-MOS断开、N-MOS激活
优点可直接输出3.3v配合外部电路,更加灵活
缺点只能输出3.3v高电平实际是高阻态,无法输出电流

2、输入模式

    框图如下:
在这里插入图片描述
    1、外部电流经引脚向内流入首先经过一对上下拉电阻。继续前进会经过肖特基触发器,或者说斯密特触发器。其作用是稳定电平。
    2、斯密特触发器:会有高参考电压和低参考电压。当高于高参考电压会被单片机认为是高电平1,低于低参考电压会被单片机认为是低电平0。如果在两者中间,则维持上次电平不变。
    3、继续前进,该值就会被写入输入数据寄存器。当调用HAL库HAL_GPIO_ReadPin函数时就会读走该值。

2.1、上拉输入

    上拉电阻使能。

2.2、下拉输入

    下拉电阻使能。

2.3、浮空输入

    上下拉电阻都关闭。

2.4、模拟输入

    该模式下是为了读取输入电压的具体数值(ADC), 所以上面框图中在斯密特触发器之前就走向了另一个分支。

3、测试

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ff860285dcd84aafb6f743a923be46fb.pn
在这里插入图片描述

    如上原理图,LED的一脚VCC 3.3V,另一脚接在stm32的PC13上。按键K1接在stm32的PB14上,外部上拉。我们实现按键按下小灯亮,再按下小灯熄灭。

3.1、STM32CubeIDE配置

    新建STM32工程,我这里使用STLINK,配置SW接口用于烧录程序。
在这里插入图片描述
在这里插入图片描述
    ctrl + s 快捷键保存生成代码。

3.2、coding

在这里插入图片描述
    如上图,调用HAL_GPIO_ReadPin会去读取按键脚对应的IDR寄存器获取引脚电平状态,来判断按键是否按下。调用HAL_GPIO_TogglePin对BSRR寄存器操作,实现引脚电平翻转。即可实现按下小灯熄灭活点亮。

4、STM32 GPIO 相关寄存器介绍

4.1、GPIO->ODR寄存器

在这里插入图片描述
    可读可写。低16位,对应位写1输出高电平,写0输出低电平。高16位保留。

4.2、GPIO->BSRR寄存器

在这里插入图片描述
    只写寄存器,32位,既能控制管教为低电平,也能控制管教为高电平。

43、GPIO->BRR寄存器

在这里插入图片描述

在这里插入图片描述

    端口位清除寄存器,只写,只能改变管脚状态为低电平。

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

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

相关文章

SqlServer中连续号及断号查询—附源码

效果如下图所示: SqlServer中连续号及断号查询SQL如下: --1.定义临时表 DECLARE TestTemp TABLE(TestCode NVARCHAR(50),TestNum INT )DECLARE DataTemp TABLE(TestCode NVARCHAR(50),TestNumStr NVARCHAR(100) )--2.插入测试数据 INSERT INTO TestT…

国产体脂方案——蓝牙体脂秤方案

蓝牙体脂秤采用的就是BIA生物电阻抗技术,用户仅需1次测量,就能知道身体的脂肪率,水分率,基础代谢率,肌肉量,骨量,蛋白质,BMI,体重,身体的得分,年龄…

Linux:kubernetes(k8s)pod的基础操作(6)

Linux:kubernetes(k8s)允许在任意节点使用kubectl命令(5)-CSDN博客https://blog.csdn.net/w14768855/article/details/136460090?spm1001.2014.3001.5501 我在前两张进行了基础环境的一系列搭建,现在就正…

深度学习_18_模型的下载与读取

在深度学习的过程中,需要将训练好的模型运用到我们要使用的另一个程序中,这就需要模型的下载与转移操作 代码: import math import torch from torch import nn from d2l import torch as d2l import matplotlib.pyplot as plt# 生成随机的…

NFTScan :什么是 ERC-404?深入解读 NFT 协议的未来

上月初,ERC-404 成为最首要热门的话题,ERC-404 是由 Pandora 团队在 2 月初为创作者和开发者等开源的实验性代币标准,其混合 ERC-20 / ERC-721 实现,具有原生流动性和碎片化等特点。伴随着早期的发展,越来越多参与者开…

win10安全中心误删文件怎么办?解析恢复与预防策略

在使用Windows 10的过程中,许多用户依赖于其内置的安全中心来保护电脑免受恶意软件的侵害。然而,有时安全中心的误判可能导致重要文件被错误地删除。当面对这种情况时,了解如何恢复误删的文件并掌握预防措施显得尤为重要。本文将为您详细解析…

java常用技术栈,java面试带答案

前言 我们从一个问题引入今天的主题。 在日常业务开发中,我们可能经常听到 DBA 对我们说“不要”(注意:不是禁止)使用 join,那么为什么 DBA 对 join 这么抵触呢?是 join 本身有问题,还是我们使…

私募证券基金动态-24年2月报

成交量:2月日均9492.60亿元 2024年2月A股两市日均成交9492.60亿元,环比增加30.38%、同比增加5.77%。2月整体15个交易日,有4个单日交易日成交金额过万亿,单日交易日最高成交金额为13576.43亿元(2月28日)&am…

MySQL 学习笔记(基础篇 Day1)

「写在前面」 本文为黑马程序员 MySQL 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。 目录 0 课程介绍 1 MySQL 概述 1.1 数据库相关概念 1.2 MySQL 数据库 2 SQL 2.1 SQL 通用语法 2.2 SQL 分类 2.3 DDL 2.4 图形…

【leetcode C++】电话号码的字母组合

17. 电话号码的字母组合 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 题目链接 . - 力扣(LeetCode&…

1.类和对象-友元

文章目录 1.全局函数做友元代码运行结果 2.类做友元代码运行结果 1.全局函数做友元 思路分析: 正常情况下,全局函数visit()中的ROOM 类变量r是访问不到Building类中的私有成员的。但是通过在Building类中添加使用全局函数做友元,即可访问私有…

什么是ElasticSearch的深度分页问题?如何解决?

在ElasticSearch中进行分页查询通常使用from和size参数。当我们对ElasticSearch发起一个带有分页参数的查询(如使用from和size参数)时,ElasticSearch需要遍历所以匹配的文档直到达到指定的起始点(from),然后返回从这一点开始的size个文档 在这个例子中: 1.from 参数定义…

代码学习记录13

随想录日记part13 t i m e : time: time: 2024.03.06 主要内容:今天的主要内容是二叉树的第二部分哦,主要有层序遍历;翻转二叉树;对称二叉树。 102.二叉树的层序遍历226.翻转二叉树101. 对称二叉…

LeetCode-第67题-二进制求和

1.题目描述 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 2.样例描述 3.思路描述 将两个二进制字符串转换成整型,然后相加后的整型转为二进制字符串 4.代码展示 class Solution(object):def addBinary(self, a, b):# 将字符串…

AI新工具(20240306) mlx-swift-chat Mac运行本地模型;Comflowyspace开源AI图像和视频生成工具

1: mlx-swift-chat 专为 Apple 硅片设计的高效机器学习框架,支持在本地实时运行 LLM 模型(如 Llama、Mistral) mlx-swift-chat 是一个为苹果系统(例如你的笔记本电脑上的Apple Silicon)特别设计的机器学习框架 MLX 的…

计划任务和日志

一、计划任务 计划任务概念解析 在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。RHEL6系统中默认已安装了at、crontab软件…

扫码看图的预览效果怎么做?图片的二维码如何在线生成?

图片二维码是现在很常用的一种预览图片的方式,比如照片、海报、动态图、拍摄的图片等类型的内容都可以用二维码的方式在手机上预览。在制作图片二维码时候,现在大多会通过网上的图片二维码生成器来制作,直接用专业的功能,就可以快…

SoraAI优先体验资格注册教程

SoraA1视频工具优先体验资格申请 申请网址:https://openai.com/form/red-teaming-network 申请步骤: 填写基础信息 请使用英文根据内容填写以下内容,名、姓、电子邮件、居住国家、组织隶属关系(如果有)、教育水平 、学位(哪个领…

视频推拉流EasyDSS平台直播通道重连无法转推的原因排查与解决

视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 用户使用EasyDSS平台对直播通道进行转推,发现只要关闭…

大势智慧黄先锋:现实世界数字重建 拥抱AI 擘画自主可控的三维画卷

来源:中国地理信息产业协会 实景三维涉及到大面积、高精度的地理空间信息数据,然而早期国内99%以上的实景三维数据制作测绘单位都基于国外软件进行三维重建,如此重要的工作大量使用国外软件,如何确保国家地理空间信息的安全&#…