stm32之GPIO(二)

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

    1、浮空输入_IN_FLOATING

    2、带上拉输入_IPU

    3、带下拉输入_IPD

    4、模拟输入_AIN

    5、开漏输出_OUT_OD

    6、推挽输出_OUT_PP

    7、复用功能的推挽输出_AF_PP

    8、复用功能的开漏输出_AF_OD

上拉:输入高电平,然后接一个上拉电阻(起保护作用),上拉就表示该端口在默认情况下输入为高电平;

浮空:就相当于此端口在默认情况下什么都不接,呈高阻态;

开漏输出:就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电压电压。这种方式适合在连接的外设电压比单片机电压低的时候;

推挽输出:就是单片机引脚可以直接输出高电平电压,低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上上拉电阻。但如果输出端可以会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚;

  在stm32中如何配置片内外设使用的IO端口:

    首先:

      1、配置输入的时钟和初始化后即被激活(开启);

      2、如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出可以做普通GPIO管脚使用)

      3、再对外设进行详细设置。

      对应到外设的输入输出功能有下面三种情况:

        1、外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出;

        2、外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入;

        3、ADC对应的管脚:配置管脚为模拟输入;

  如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接,将管脚配置成输出功能后,如果外设没有被激活,那么它的输出将不确定;

时间: 2024-11-09 12:12:14

stm32之GPIO(二)的相关文章

STM32 F4 GPIO Modes

STM32 F4 GPIO Modes Goal: creating a visual summary of GPIO configuration modes. The summary at the bottom shows the major configuration choices. Basic electrical info: GPIOs can sink or source up to ±8 mA, and sink or source up to ±20 mA (with a rel

STM32的GPIO使用的函数剖析

转载http://blog.csdn.net/wuwuhuizheyisheng/article/details/8239599 STM32的GPIO总结 作者:JCY 该文是自己学习了一段STM32后所写,是对STM32使用固件库编程最简单的一段程序,是对固件库函数的一部分进行解析.如有错误之处请指正,不胜感激. 一. GPIO_Init函数解析 1 1.参数GPIO_TypeDef 1 2.参数GPIO_InitStruct 2 3.函数代码详解 4 4.备注 6 一.GPIO_Init函数

stm32之GPIO

stm32有5组GPIO口,GPIOA GPIOB GPIOC GPIOD GPIOE 每个GPIO端口有: 2个配置寄存器GPIOx_CRL, GPIOx_CRH(32位): 2个数据寄存器GPIOx_IDR, GPIOx_ODR(32位): 1个置位/复位寄存器GPIOx_BSRR(32位): 1个复位寄存器GPIOx_BRR(16位): 1个锁定寄存器GPIOx_LCKR(32位): 输入模式: —输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 输出模式: ─ 开漏输出 ─ 推挽式输出

Stm32高级定时器(二)

Stm32高级定时器(二) 1 主从模式:主?从? 谈论主从,可知至少有两个以上的触发或者驱动信号,stm32内部有多个定时器,可以相互之间驱动或者控制. 主模式:定时器使能只受驱动时钟控制或者输出控制信号(TRGO). 从模式:复位模式, 在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化:同时,如果IMx_CR1寄存器的URS 位为低,还产生一个更新事件UEV :然后所有的预装载寄存器(TIMx_ARR ,TIMx_CCRx)都被更新了. 从模式:门控模式, 计数器的使能依赖于选

stm32之GPIO库函数开发

关于GPIO库函数的重点函数:P122 GPIO_Init() :根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器: GPIO_ReadInputDataBit():读取指定端口管脚的输入: GPIO_SetBits():设置指定的数据端口位: GPIO_ResetBits(): 清除指定的数据端口位: GPIO_PinRemapConfig(): 改变指定管脚的映射:----------端口映射是很有特色的功能:也是重点知识 GPIO_EXTILineConfig():

【转载】stm32的GPIO八种工作模式

一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.         推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小.效率高.输出既可以向负载灌电流,也可以从负载抽取电流.推拉式输出级既提高电路的负载能力,又提高开关速度. 二.开漏输出:输出端相当于三极管的集电极,要得

STM32单片机GPIO口配置问题

在学习STM32F单片机时,我们常常困惑什么时候才能叫入门,采用什么样的教材入门,或者采用什么的编程软件.在学习类的教材中,以神州,原点教材布局很多,但是相信很多人看到这类教材也是一头雾水,需要你花费巨大的精力从寄存器的最底层去学习和了解,学习时间还是相对漫长.在采用的编程软件中,KEIL和IAR各有优势吧,在这里我选用的是KEIL. 在开始学习编程时,我采用的是库函数开发指南.在安装完成KEIL软件和添加项目工程时,就开始学习库函数编程. 在编写一个GPIO口控制时,首先我们要知道我们要实现的

STM32基本GPIO操作:按键输入(扫描+外部中断)

(涉及专有名词较多,难免解释不到位,若有错误还请指出,谢谢!) 硬件连接图如下: 一.扫描 思路是在main函数中通过死循环来扫描端口电平状态检测,以此判断按键是否按下.实现较为简单. 1.初始化(注意C语言中变量声明需放在函数开头) 以下是初始化PB5端口(LED灯)的代码,每一条语句的含义在我另一篇博客里 GPIO_InitTypeDef GPIO_Init1; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_Init1.

STM32 常用GPIO操作函数记录

STM32读具体GPIOx的某一位是1还是0 1 /** 2 * @brief Reads the specified input port pin. 3 * @param GPIOx: where x can be (A..G) to select the GPIO peripheral. 4 * @param GPIO_Pin: specifies the port bit to read. 5 * This parameter can be GPIO_Pin_x where x can b