GPIO(General-purpose input/output 通用目的输入/输出端口)

              电压(A模拟量)与电平(D数字量)

GPIO 8种工作模式(输入四种、输出四种)

  1、GPIO_Mode_AIN 模拟输入

  2、GPIO_Mode_IN_FLOATING 浮空输入

  3、GPIO_Mode_IPD 下拉输入

  4、GPIO_Mode_IPU 上拉输入

  5、GPIO_Mode_Out_OD 开漏输出

  6、GPIO_Mode_Out_PP 推挽输出

  7、GPIO_Mode_AF_OD 复用开漏输出

  8、GPIO_Mode_AF_PP 复用推挽输出

一、模拟输入

  黄色高亮部分表示数据的传输通道,阴影的部分不工作。

  模拟输入是指传统方式的输入.数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。

二、浮空输入

  图中施密特触发器是打开的,上下拉电阻断开,IO口的状态可以直接送到输入寄存器中,CPU可以直接读取输入寄存器。

三、下拉输入

  下拉输入与前面的浮空输入模式相比,仅仅是在数据通道下部,接入一个下拉电阻,STM32中,该下拉电阻的阻值介于30-50K。

  下拉输入就是把电压拉低,拉到GND。与上拉原理相似。

四、上拉输入

   上拉输入与前面的浮空输入模式相比,仅仅是在数据通道上部,接入一个上拉电阻,STM32中,该上拉电阻的阻值介于30-50K。

   上拉就是把电位拉高,比如拉到VDD。上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!弱强只是上拉电阻的阻值不同,没有什么严格区分

五、开漏输出

  如图,输出控制电路控制信号来源于CPU,当输出信号1,则PMOS不被激活,NMOS高阻,输出端口的电平由外部的上下拉电阻决定,当接上拉电阻,则端口为高电平,当接下拉电阻,则端口为低电平;当输出控制电路输出0,则PMOS不被激活,NMOS导通,则端口电平拉低到VSS上。

  输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

  简言之:

    输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。
    输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);可以读IO输入电平变化,此模式可以把端口作为双向IO使用。

六、推挽输出

  可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。

  简言之:

    输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。
    输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。

七、八、复用开漏输出/复用推挽输出

  可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。

  复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)(8)复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

  如图,输出控制电路信号来源于片上外设模块,当输出信号1,则PMOS导通,NMOS截止,输出端口的电平由外部的上下拉电阻决定,当接上拉电阻,则端口为高电平,当接下拉电阻,则端口为低电平;当输出控制电路输出0,则PMOS截止,NMOS导通,则端口电平拉低到VSS上。

 输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

输入保护电路

    当输入信号电压为正时,且超过(VDD)+0.7V,D1导通,导通后,输入端的电压就稳定在(VDD)+0.7V了,而不会因输入信号电压增加而增加,就起到了保护作用。
 同理,当输入信号电压为负时,且超过了(VSS)-0.7V,D2导通,输入端的电压也稳定在(VSS)-0.7V。
   这样,只要设置VDD,VSS的电压大小,就可以确定运放输入端的保护电压大小

推挽和开漏可以参考该文章:https://blog.csdn.net/qq_27016651/article/details/83096126

嵌入式02 STM32 实验02 端口输入输出各4种模式的更多相关文章

  1. 嵌入式02 STM32 实验01 端口复用和重映射

    内设与外设: 端口复用和端口重映射都需要了解内设和外设,那么什么是内设?什么是外设? 内设:单片机内部集成的功能一般包括:串口模块.SPI模块(Serial Peripheral Interface  ...

  2. 嵌入式02 STM32 实验04跑马灯

    开学STM32 跑马灯的实验主要就是了解GPIO口的配置及使用,我这里是使用库函数进行编程,主要需要设置以下两方面: 1.使能需要使用的IO口的时钟,一共有A.B.C.D.E.F.G七组IO口 2.初 ...

  3. 嵌入式02 STM32 实验06 按键

    按键实验和前面的跑马灯.蜂鸣器主要的区别就是这个是读取外部的输入信号,之前的实验都是对外部输出信号. 一.硬件设计 本实验的硬件为三个按键.两个lED(LED0.LED1).一个蜂鸣器(BEEP). ...

  4. 嵌入式02 STM32 实验05 蜂鸣器

    蜂鸣器:是一种一体化结构的电子讯响器.主要分为分压式蜂鸣器和电磁式蜂鸣器两种类型. 一.有源/无源蜂鸣器(不是指是否带电源,而是有没有自带震荡电路) 1.有源蜂鸣器:有源蜂鸣器自带震荡电路,一通电就会 ...

  5. 嵌入式02 STM32 实验11 NVIC和中断总结

    一.基础知识 1.cortex-m3支持256个中断,其中包含了16个内核中断,240个外部中断 2.STM32只有84个中断,包括16个内核中断和68个可屏蔽中断 3.STM32F103上只有60个 ...

  6. 嵌入式02 STM32 实验10 定时器中断

    优秀文章 https://blog.csdn.net/qq_38351824/article/details/82619734 一.STM32通用定时器(TIM2.TIM3.TIM4和TIM5共四个通 ...

  7. 嵌入式02 STM32 实验08 外部中断

    一.中断 由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理事件的一个程序.该程序执行完成后,CPU接着执行被暂停的程序.这个过程称为中断.(我正在捉泥鳅,但是我妈喊我回家吃饭,我必须回家 ...

  8. 嵌入式02 STM32 实验07 串口通信

    STM32串口通信(F1系列包含3个USART和2个UART) 一.单片机与PC机串行通信研究目的和意义: 单片机自诞生以来以其性能稳定,价格低廉.功能强大.在智能仪器.工业装备以及日用电子消费产品中 ...

  9. 嵌入式02 STM32 实验03 时钟系统

    时钟系统是处理器的核心,所以认真学习时钟系统是必要的,有助于深入理解STM32. 由于STM32的外设很多,有的外设不需要太高的时钟频率,同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也越弱,所以对 ...

随机推荐

  1. Spark-源码分析01-Luanch Driver

    1.SparkSubmit.scala 什么是Driver 呢?其实application运行的进程 就是driver,也是我们所写的代码就是Driver. object DefaultPartiti ...

  2. BZOJ 4477: [Jsoi2015]字符串树 可持久化trie树

    这个是真——可持久化字典树..... code: #include <bits/stdc++.h> #define N 100006 #define setIO(s) freopen(s& ...

  3. Xshell6和Xftp6初步使用

    Xshell6和Xftp6初步使用 一.Xshell6和Xftp6介绍: Xshell6:可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的. Xftp6:是 ...

  4. SpringBoot中Example的动态条件查询

    一.无匹配器的情况: Person person = new Person(); person.setName("test"); Role role = new Role(); r ...

  5. mysql开放远程连接

    1.检查端口是否被监听,没有的话请启动mysql. netstat -atnp | grep 3306 2.检查用户是否具备远程连接,即host字段值不是 % mysql -uroot -p你的密码 ...

  6. Noip2019暑期训练1

    题目名称 时空定位 棋子移动 高精度乘法 数独游戏 存盘文件名 location piece mul sudoku 输入文件名 location.in piece.in mul.in sudoku.i ...

  7. Spring Boot 配置文件 bootstrap vs application 到底有什么区别?

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...

  8. socket http tcp ip 区别联系

    功能是实现继承复用.刚才做了一个简要的概述,里面有一些常用的概念,这里做个简短的概念普及介绍:(1),TCP/IP------TPC/IP协议是传输层协议,主要解决数据如何在网络中传输.(2),Soc ...

  9. 将爬取的实习僧网站数据传入HDFS

     一.引言: 作为一名大三的学生,找实习对于我们而言是迫在眉睫的.实习作为迈入工作的第一步,它的重要性不言而喻,一份好的实习很大程度上决定了我们以后的职业规划. 那么,一份好的实习应该考量哪些因素呢? ...

  10. IDEA启动Springboot时,解决报错java.lang.NoClassDefFoundError: javax/servlet/Filter

    如下所示,将spring-boot-starter-tomcat依赖中的<scope>provided</scope>注释掉 <dependency> <gr ...