8种IO口模式

stm32初学者–欢迎大家提点。
8种IO口模式
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 复用推挽输出

常用的是 :推挽输出、开漏输出、上拉输入三种。
推挽输出:两个三极管。两个三极管对称,一次只能有一个导通,各负责正负半周的波形放大任务,导通损耗小、效率高
开漏输出:连接两路不同电平(可以将其理解为三极管)
浮空输入:电压不确定,多用于外部按键输入。

复用开漏输出、复用推挽输出;可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用io使用)

总结:
5种方式使用某个引脚功能,配置如下:
1)作为普通 GPIO 输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能
该引脚对应的所有复用功能模块。
2)作为普通 GPIO 输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复
用功能模块。
3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。
4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引
脚对应的某个复用功能模块。
5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所
有复用功能模块。

### SMT32微控制器的八种IO配置模式详解 STM32系列微控制器的GPIO(通用输入/输出)引脚支持多种配置模式,以满足不同的应用需求。这些模式包括输入模式、输出模式、复用功能模式以及模拟模式等。以下是详细的八种IO配置模式: 1. **输入浮空模式(Input Floating)** 在此模式下,GPIO引脚被配置为输入,并且内部上下拉电阻均未启用,引脚处于浮空状态。这种模式适用于外部电路提供明确电平的情况。 2. **输入上拉模式(Input Pull-Up)** 在此模式下,GPIO引脚被配置为输入,并且内部上拉电阻启用,确保在没有外部信号输入时,引脚默认为高电平。 3. **输入下拉模式(Input Pull-Down)** 在此模式下,GPIO引脚被配置为输入,并且内部下拉电阻启用,确保在没有外部信号输入时,引脚默认为低电平。 4. **模拟输入模式(Analog Input)** 在此模式下,GPIO引脚被配置为模拟输入,用于ADC(模数转换器)或其他模拟功能,此时数字输入缓冲区被禁用。 5. **开漏输出模式(Output Open-Drain)** 在此模式下,GPIO引脚被配置为输出,并且使用开漏结构,需要外部上拉电阻来实现高电平输出。这种模式适用于I2C等需要线与逻辑的通信接。 6. **推挽输出模式(Output Push-Pull)** 在此模式下,GPIO引脚被配置为输出,并且使用推挽结构,能够提供高电平和低电平的驱动能力,适用于一般的数字输出需求。 7. **复用开漏输出模式(Alternate Function Open-Drain)** 在此模式下,GPIO引脚被配置为复用功能,并且使用开漏结构,通常用于SPI、I2C等外设的通信接8. **复用推挽输出模式(Alternate Function Push-Pull)** 在此模式下,GPIO引脚被配置为复用功能,并且使用推挽结构,通常用于USART、SPI等需要高速驱动的外设接。 ### 配置示例代码 以下是一个简单的代码示例,展示如何配置STM32的GPIO引脚为推挽输出模式: ```c #include "stm32f10x.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOB时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 配置GPIOB的Pin 5为推挽输出模式 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出速度为50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); } ``` 上述代码中,`GPIO_Mode_Out_PP`表示推挽输出模式,`GPIO_Speed_50MHz`表示输出速度为50MHz。通过`GPIO_Init`函数将配置应用到指定的GPIO引脚上。 ### 相关问题 1. 如何在STM32配置GPIO为复用推挽输出模式? 2. STM32的GPIO引脚在输入浮空模式下需要注意哪些事项? 3. 在STM32中,如何通过代码实现GPIO引脚的开漏输出模式? 4. STM32的模拟输入模式适用于哪些应用场景? 5. 如何在STM32配置GPIO引脚为输入上拉模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值