读取gpio管脚电平需要设置什么模式_STM32 GPIO管脚模式的设置及使用方法

本文详细介绍了STM32 GPIO管脚的8种模式,包括浮空输入、带上拉输入、带下拉输入、模拟输入、开漏输出、推挽输出等,并通过实例说明了如何设置及读取电平变化。此外,还提到了5种使用引脚功能的方式及其配置要点。
摘要由CSDN通过智能技术生成

一、 在STM32中选用IO模式

1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1

2、带上拉输入GPIO_IPU——IO内部上拉电阻输入

3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入

4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电

5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。

当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。

可以读IO输入电平变化,实现C51的IO双向功能

6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的

7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)

8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

二、 STM32设置实例:

1、模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;读值时先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,

然后可以读IO的值;使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0);

2、如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
读取STM32F103C8T6的GPIO电平通常涉及以下步骤: 1. **打开GPIO的时钟**:在配置和使用任何GPIO引脚之前,需要先使能对应端的时钟。 2. **配置引脚模式**:根据需要GPIO引脚设置为输入或输出模式。对于读取电平,应将引脚配置为输入模式。 3. **读取电平**:使用适当的函数读取指定引脚的电平状态。 以下是一个简单的示例代码,展示如何读取GPIOA的第0引脚的电平状态: ```c #include "stm32f10x.h" // 包含STM32F103xx系列微控制器的头文件 // 初始化GPIO void GPIO_Init(void) { // 打开GPIOA端的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 配置GPIOA的第0引脚为输入模式 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 上拉输入模式 GPIO_Init(GPIOA, &GPIO_InitStructure); } // 主函数 int main(void) { uint8_t inputDataBit; // 初始化GPIO GPIO_Init(); while (1) { // 读取GPIOA的第0引脚的电平状态 inputDataBit = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0); // 根据读取到的电平状态进行相应的处理 if (inputDataBit == 0) { // 执行低电平对应的操作 } else { // 执行高电平对应的操作 } } } ``` 在实际应用中,您可能需要根据具体的硬件连接和需求对代码进行适当的修改。此外,为了确保代码的正确性,建议参考STM32的官方文档和库函数的使用说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值