(HAL库学习2)STM32CubeMX HAL库 io口上拉下拉与读取状态

本文详细介绍了如何使用STM32CubeMX配置STM32F411CEU6的IO口进行高低电平的输入输出,并通过串口打印输出状态。作者分享了在KEIL中实现这一功能的具体步骤,包括设置引脚模式和编写核心函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用STM32CubeMX创建工程,输入输出io口高低电平,读取io高低电平并且使用串口打印输出(本次演示实验使用的是STM32F411CEU6,创建工程以及打开串口和之前的文章步骤一样的,只是切记,创建工程设置时钟频率那里设置为100,因为之前用的是f103c8t6的,所以之前是72)

io输出与读取:第一步:在STM32CubeMX中设置好相应的io口

在这里插入图片描述
在按照我之前的文章弄好工程以及串口打印printf重定向之后,在芯片处可以直接点击相应的引脚设置引脚模式,output(输出模式)和input(输入模式) 分别是这次用到的功能,其他功能在后面的文章中会慢慢用到,按照上图设置好引脚的属性,点击生成工程即可

io的输入与读取:第二步:在keil中打开工程,开始写自己的逻辑

在这里插入图片描述
上面的就是核心的几个函数,还有很多其他的不是很常用的暂时不需要记,后面如果我发箱还有什么特别常用的io基本操作函数会更新在这篇文章中。

最后

我是一个新人博主,目前也是一个大学生,但是真心喜欢嵌入式和物联网,已经自学3年了,我会带着热爱一直把博文写下去,也是自己记笔记的一种方式,大家可以关注我,给我留言,一起学习

### 使用 STM32CubeMX 配置并读取 STM32 IO 电平 #### 配置 GPIO 输出电平 在 STM32CubeMX 中配置 GPIO 引脚作为输出时,可以设定初始输出状态以及最大输出速度。具体操作如下: 1. **打开 STM32CubeMX 并创建新项目** 2. **选择目标 MCU** 3. **进入 Pinout & Configuration 页面** - 找到要配置的引脚,在右侧属性栏中设置 `GPIO Mode` 为 `Output`。 4. **设置初始输出状态** - 在同一页面下的 `GPIO Output Level` 可选 `Low` 或者 `High` 来决定该引脚初始化后的默认高低电平[^4]。 5. **调整输出速度** - 根据需求选择合适的 `Maximum output speed` 参数,对于大多数应用而言,低速 (`Low`) 即可满足要求,特别是当用于驱动 LED 这样的简单负载时[^2]。 6. **启用内部上下电阻(如果需要)** - 如果设计中有特殊需求,则可以在 `GPIO Pull-up/Pull-down` 下菜单里挑选相应的选项;不过对于普通的推挽输出型 IO 接口来说这一步骤并非必需。 7. **生成代码** - 完成上述配置之后点击 Generate Code 按钮让软件自动生成初始化程序框架。 #### 编写代码读取 GPIO 输入电平 为了能够检测某个特定引脚上的逻辑信号变化情况,还需要编写一小段 C/C++ 语言编写的嵌入式应用程序片段来完成这项工作。下面给出了一种简单的做法: ```c #include "main.h" // 假设我们要监测 PA0 的输入状态 #define READ_PIN GPIO_PIN_0 #define PORT GPIOD int main(void){ HAL_Init(); // 初始化系统时钟、外设等... while(1){ if(HAL_GPIO_ReadPin(PORT,READ_PIN)==GPIO_PIN_SET){ // 当前PA0处于高电平时执行的操作 } else{ // 当前PA0处于低电平时执行的操作 } // 添加适当延时防止 CPU 循环过快占用过多资源 HAL_Delay(1); } } ``` 这段代码会不断轮询所选定的 GPIO 引脚的状态,并根据不同情况进行处理。当然也可以利用中断机制提高效率和响应速度,但这超出了当前讨论范围。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值