网站首页 > 知识剖析 正文
配置STM32F103的GPIO引脚为输入模式的过程与配置为输出模式类似,但需要特别注意的是,选择合适的输入模式(如浮空输入、上拉/下拉输入等)。下面是使用STM32标准外设库进行GPIO输入配置的基本步骤。
步骤 1: 包含必要的头文件
#include "stm32f10x.h"
步骤 2: 使能GPIO端口的时钟
在配置GPIO之前,必须先使能相应GPIO端口的时钟。假设我们要配置GPIOB,则应添加如下代码:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
步骤 3: 配置GPIO初始化结构体
接下来,创建并初始化一个GPIO_InitTypeDef类型的结构体变量,用于指定将要配置的GPIO引脚的参数。例如,设置PB12为上拉输入模式:
GPIO_InitTypeDef GPIO_InitStructure;
// 选择要配置的引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
// 设置引脚的工作模式为带上拉电阻的输入模式
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 输入模式,带内部上拉电阻
// 不需要设置输出速度,因为这是输入模式
// 调用GPIO初始化函数完成配置
GPIO_Init(GPIOB, &GPIO_InitStructure);
在这个例子中,我们选择了带有内部上拉电阻的输入模式 (GPIO_Mode_IPU)。你也可以根据实际需求选择其他输入模式,如浮空输入 (GPIO_Mode_IN_FLOATING) 或者下拉输入 (GPIO_Mode_IPD)。
步骤 4: 读取GPIO输入状态
配置完成后,可以通过读取IDR寄存器来获取GPIO引脚的状态。例如,读取PB12的状态:
uint8_t pinState = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12); // 读取PB12的电平状态
pinState将会是BitAction类型的一个值,即RESET(低电平)或SET(高电平)。
猜你喜欢
- 2025-03-30 电气自动化专业词汇中英文对照表(电气自动化专业英文缩写)
- 2025-03-30 Java IO 以及 NIO 详解(java ioutils)
- 2025-03-30 I/O Zero Copy是什么?看完这篇你绝对会了
- 2025-03-30 关于序列化的 10 几个问题,你顶得住不?
- 2025-03-30 java转换流有什么用?(java流转字符串)
- 2025-03-30 Java Web应用调优线程池:没你想的那么复杂
- 2025-03-30 基本功 | Java即时编译器原理解析及实践
- 2025-03-30 想学习人工智能,这个的数据集必须掌握,MNIST入门与实战
- 2025-03-30 还不理解 Error 和 Exception 吗,看这篇就够了
- 2025-03-30 从CPU到NPU,英特尔芯片到底快了多少?开发者实测:AI性能飞跃15倍!
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)