学习和使用任何一款 MCU,最初开始往往都是从 GPIO 入手的,学会如何配置 IO,能让 IO 输出想要的电平状态,能读取 IO 口的电平。GPIO(General-Purpose input/output):通用输入输出端口的简称,是 MCU 与外部通信的通道。对于 Cortex-M3 的系列 MCU,比如 STM32F103 它的 GPIO 总共有八种模式:(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_AF_OD 复用开漏输出(4)GPIO_Mode_AF_PP 复用推挽输出这些模式分别有什么作用,建议大家去查阅 STM32 的中文参考手册,里面有比较详细的介绍。本文主要介绍怎么通过 CUBEMX 使用GPIO达到我们需要的效果。我所用的板子有两个 LED,所以就用这两个 LED 作为演示。LED 的原理图连接如下:从图中可以看到 LEDO --> PB5,LED1 --> PE5,并且IO输出低电平时LED亮起,输出高电平时 LED 熄灭。(1)创建一个工程,并选择 Pinout & Configuration :(2)找到对应的GPIO标号,点击一下会有一个下拉框:我这里把GPIO设置为输出模式,选择 GPIO_Output 即可。(4)配置好以后GPIO还是不能输出的,要在代码中加些代码,如下:(1)输入的 GPIO 就选 PF1,输入配置如下:HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
HAL_GPIO_ReadPin(GPIOF, GPIO_Pin_7);