前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

STM32CUBEMX 使用教程2 — GPIO的使用、输入/输出


学习和使用任何一款MCU,最初开始往往都是从GPIO入手的,学会如何配置IO,能让IO输出想要的电平状态,能读取IO口的电平。

本篇介绍一下STM32的GPIO。

GPIO(General-Purpose input/output):通用输入输出端口的简称,是MCU与外部通信的通道。

对于Cortex-M3的系列MCU,比如 STM32F103 它的GPIO总共有八种模式:

按输入:

(1)GPIO_Mode_AIN 模拟输入

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

按输出:

(1)GPIO_Mode_Out_OD 开漏输出

(2)GPIO_Mode_Out_PP 推挽输出

(3)GPIO_Mode_AF_OD 复用开漏输出

(4)GPIO_Mode_AF_PP 复用推挽输出

这些模式分别有什么作用,建议大家去查阅STM32的中文参考手册,里面有比较详细的介绍。本文主要介绍怎么通过 CUBEMX 使用GPIO达到我们需要的效果。

一、GPIO输出配置

我所用的板子有两个LED,所以就用这两个LED作为演示。LED的原理图连接如下:

在 MCU 上的连接如下:

从图中可以看到 LEDO --> PB5,LED1 --> PE5,并且IO输出低电平时LED亮起,输出高电平时LED熄灭。

(1)创建一个工程,并选择 Pinout & Configuration :

(2)找到对应的GPIO标号,点击一下会有一个下拉框:

这里面的选项是决定把GPIO配置为什么功能。

我这里把GPIO设置为输出模式,选择 GPIO_Output 即可。

(3)设置GPIO的选项。如下图:

(4)配置好以后GPIO还是不能输出的,要在代码中加些代码,如下:


二、GPIO输入配置

(1)输入的GPIO就选 PF1,输入配置如下:

(2)相应的配置如下:

(3)读取IO的电平状态:

IO电平的状态读取需要用到的 API 函数:

HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)

如下:

HAL_GPIO_ReadPin(GPIOF, GPIO_Pin_7);

以上就是GPIO的输入/输出的配置和使用。


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言