STM32的IO口模式配置

根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是:

四种输入模式

  1. 上拉输入:通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平。
  2. 下拉输入:把电压拉到GND。与上拉原理相似。
  3. 浮空输入:引脚内部什么都不接,处于浮空模式下,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。
  4. 模拟输入:接收到的是连续的模拟信号,一般用于AD转换。

四种输出模式

  1. 推挽输出:可以输出高低电平,连接数字器件。在stm32中推挽电路由两个MOS管组成:输出高电平时P-MOS管导通,引脚联通VDD(3.3v)。输出低电平时N-MOS导通,引脚联通GND。该方式既提高电路的负载能力,又提高开关速度。
  2. 开漏输出:无法直接输出高电平,要在外部连接上拉电阻才行,输出的电压由上拉电阻连接的电源决定。适合做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。开漏输出还有一个特性:线与。即很多开漏模式引脚连接在一起,只有当所有引脚都输出1时,才能够被上拉电阻拉到高电平。若有一个引脚为低电平,则所有引脚相当于接地。
  3. 复用推挽输出:简单来说就是给内部外设使用的推挽输出模式,
  4. 复用开漏输出:简单来说就是给内部外设使用的开漏输出模式

在STM32中,根据不同的使用场景,选用不同的IO模式:

  1. GPIO_Mode_AIN: 模拟输入,一般用作模数转换
  2. GPIO_Mode_IN_FLOATING: 浮空输入,常用在key识别上
  3. GPIO_Mode_IPD: 下拉输入--- IO内部下拉电阻输入
  4. GPIO_Mode_IPU:上拉输入--- IO内部上拉电阻输入
  5. GPIO_Mode_Out_OD: 开漏输出---可以外接上拉电阻输出较高的电平,也能够通过读取IO的电平变化实现C51的IO双向功能。
  6. GPIO_Mode_Out_PP: 推挽输出---IO输出0-接GND,IO输出1 -接VCC,读输入值是未知的。
  7. GPIO_Mode_AF_OD:复用开漏输出---片内外设功能(TX1,MOSI,MISO.SCK.SS)。
  8. GPIO_Mode_AF_PP: 复用推挽输出---片内外设功能(I2C的SCL,SDA)。

根据下面的IO结构图可能更有利于理解:

STM32端口输入输出模式配置的更多相关文章

  1. STM32 输入捕获配置

    在STM32 的定时器,除了 TIM6 和 TIM7,就是通过检测 TIMx_CHx 上的 边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候, 将当时定时器 的值(TIMx_CNT) 存放到对 ...

  2. STM32端口复用和映射

    STM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明.我们知道每个内置外设都有若干个输入输 ...

  3. stm32单片机时钟中断的配置

    原作者:http://www.eeworld.com.cn/mcu/article_2016082828940.html 配置流程:   1:系统时钟初始化,包括系统时钟和要开放的IO口或者功能的时钟 ...

  4. STM32 GPIO口的配置和应用

    STM32F103ZET6 一共有7组IO口(有FT的标识是可以识别5v的) 每组IO口有16个IO 一共16*7=112个IO 4种输入模式: (1) GPIO_Mode_AIN 模拟输入 (2) ...

  5. STM32时钟系统的配置寄存器和源码分析

    一.时钟系统 概述 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令,时钟系统就是CPU的脉搏,决定cpu速率. STM32有多个时钟来源的选择,为什么 STM32 要有多个时钟源呢 ...

  6. STM32之输入捕获以及小小应用(库)

    五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在 ...

  7. CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制

    第2课  CC2530的通用I/O端口输入和输出控制 广东职业技术学院  欧浩源 一.CC2530的引脚概述 CC2530微控制器采用QFN40封装,有40 个引脚.其中,有21个数字I/O端口,其中 ...

  8. 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制

    第2课  CC2530的通用I/O端口输入和输出控制 小蜜蜂科教 / 广东职业技术学院  欧浩源 [通用I/O端口视频教程:https://v.qq.com/x/page/x0793aol7us.ht ...

  9. STM32的外部中断配置及使用

    STM32的外部中断配置及使用 配置1:GPIO: 配置外部中断为输入模式: 配置2:EXTI: 配置外部中断线和触发模式: 配置3:NVIC: 配置外部中断源和中断优先级: 需要注意的是:RCC_A ...

随机推荐

  1. 编写高性能的 Lua 代码

    前言 Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏.像<魔兽世界>的插件,手机游戏<大掌门><神曲><迷失之地>等都是用Lua来 ...

  2. EditPlus详解

    如何让EditPlus支持LUA教程是本文要介绍的内容,这次主要介绍一下学习Lua之前的准备工作.关于在EditPlus中实现lua的安装,具体内容来看本文详解. (1) 下载Lua安装包,最新版本是 ...

  3. Window PHP 使用命令行模式

    电脑系统: win7 php环境: phpstudy 1 把php目录放到环境变量path下面: 我的电脑->属性->高级->环境变量->系统变量->Path->编 ...

  4. CSS-布局样式之筛选条件右边线的处理方法(no CSS3)

    先上图:

  5. vscode中的vue文件中emmet进行tab键不起作用

    文件--首选项---设置 搜索: emmet.includeLanguages在右边修改 "emmet.triggerExpansionOnTab": true, "em ...

  6. Asp SqlDataSource将数据库数据绑定在 GridView

    1.首先认识一下GridView的几条属性 ☻AllowPaging  确定是否可以分页 ☻AllowSorting  确定是否可以进行排序 ☻AlternatingRowStyle  指定奇数行样式 ...

  7. 封装自己的getClassName函数

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. postgresql模式创建、修改、删除

    一个数据库包含一个或多个模式,而模式又包含表.序列.函数等,不同的模式可以包含相同名称的表.序列.函数等.模式本质上是命名空间,就像人的姓氏一样.一个用户只要有权限,连接到数据库后,可一次访问该数据库 ...

  9. 洛谷P2444 病毒【AC自动机】

    题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段,试问,是否 ...

  10. [ASP.NET]从Request.Url获取根网址的最简单方法

    在拼接绝对路径的网址时,经常需要从Request.Url中获取根网址(比如http://www.cnblogs.com),然后与相对路径一起拼接为绝对路径. 以前的做法如下: var uri = Re ...