【 GPIO (HAL库 STM32 CubeMX配置)】

本文详细介绍了STM32的GPIO (通用输入输出) 功能,包括GPIO的输入输出模式如浮空、上拉、下拉、模拟输入,以及推挽和开漏输出模式。此外,还讲解了STM32 CubeMX配置GPIO的步骤,涉及配置系统时钟源、GPIO模式选择等。
摘要由CSDN通过智能技术生成

GPIO (HAL库 STM32 CubeMX配置)

目录

GPIO定义及功能

GPIO的输入 输出模式

I/O端口位的基本结构

端口位配置表

电路工作模式

输入模式

输入浮空(GPIO_Mode_IN_FLOATING)

输入上拉(GPIO_Mode_IPU)

输入下拉(GPIO_Mode_IPD)

模拟输入(GPIO_Mode_AIN)

输出模式

推挽输出(GPIO_Mode_Out_PP)

开漏输出(GPIO_Mode_Out_OD)

开漏复用功能(GPIO_Mode_AF_OD)

推挽复用功能(GPIO_Mode_AF_PP)

CubeMX配置

GPIO定义及功能

GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
I = 输入,O = 输出
以STM32F103x为例
每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。
每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。

GPIO的输入输出模式

HAL库STM32CubeMX中的一个软件库,全称为Hardware Abstraction Layer,即硬件抽象层。它提供了一组简化的API函数,用于控制STM32芯片上的所有硬件资源。使用HAL库可以大大简化STM32芯片的开发流程。 下面是STM32CubeMX中使用HAL库的教程: 1. 打开STM32CubeMX软件,创建一个新工程。 2. 在“Project Manager”中选择你的芯片类型和芯片型号。 3. 在“Pinout & Configuration”选项卡中选择你需要使用的芯片引脚,并将它们分配给相应的功能。 4. 在“Clock Configuration”选项卡中配置你的时钟。 5. 在“Configuration”选项卡中选择你需要使用的外设,并进行相应的配置。 6. 确认所有配置后,点击“Generate Code”按钮生成代码。 7. 打开生成的工程文件,在“Core”文件夹中找到“main.c”文件。 8. 在“main.c”文件中找到“HAL_Init()”函数,并在它下面添加你的代码。 例如,如果你想在LED灯上闪烁,可以使用以下代码: ```c #include "main.h" #include "stm32f4xx_hal.h" int main(void) { HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); /* Infinite loop */ while (1) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(1000); } } ``` 在这里,我们使用了HAL库中的函数“HAL_GPIO_TogglePin()”,它可以用来控制GPIO引脚的输出状态。我们还使用了“HAL_Delay()”函数来实现延时。 9. 将代码烧录到STM32芯片上,然后运行它,你会看到LED灯在周期性地闪烁。 这就是使用HAL库STM32CubeMX中进行开发的基本步骤。当然,这只是一个简单的例子,如果你需要使用更复杂的外设,需要进行更多的配置和编程。但是使用HAL库可以让这一切变得更加简单和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值