STM32CubeMX配置GPIO

前言

使用STM32CubeMX配置GPIO的输入与输出。

1 创建STM32CubeMX工程

不会的可以看博客第一个STM32工程

2 配置RCC时钟

根据实际选择芯片的系统时钟源,此处将RCC配置为外部无源高速时钟
在这里插入图片描述
选择好系统的时钟,然后在Clock Configuration中设置芯片的运行频率
在这里插入图片描述
可以直接HCLK(MHz)的大小即可,软件会自动调整其他选项

2 配置下载模式

有人说这一步可以省略,我认为最好还是不要省略,因为在下载口被占用和其他一些不问因素时会导致程序下载或者条失败
此处配置为常用的SW四线下载模式,将SYS中的Debug选择成Serial Wire
在这里插入图片描述

配置GPIO

前期准备工作做完后就正式开始配置GPIO
此处配置PA1为输出,配置PA2为输入

在右边的芯片视图中点击PA1引脚,选择GPIO_Output,点击PA2,选择GPIO_Input
在这里插入图片描述
此时,PA1就已经具有了输出电平的能力,默认输出为低电平,PA2也具有了输入的能力
我们还可以在左侧的GPIO选项中配置GPIO的默认电平、模式以及速度等

GPIO输出
在这里插入图片描述
GPIO输入
在这里插入图片描述
配置完GPIO后在Project Manager中配置好项目名和项目地址以及以及编译器
然后就可以生成MDK的代码啦

修改GPIO输出电平的函数

/**
  * @brief  Sets or clears the selected data port bit.
  *
  * @note   This function uses GPIOx_BSRR register to allow atomic read/modify
  *         accesses. In this way, there is no risk of an IRQ occurring between
  *         the read and the modify access.
  *
  * @param  GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral
  * @param  GPIO_Pin: specifies the port bit to be written.
  *          This parameter can be one of GPIO_PIN_x where x can be (0..15).
  * @param  PinState: specifies the value to be written to the selected bit.
  *          This parameter can be one of the GPIO_PinState enum values:
  *            @arg GPIO_PIN_RESET: to clear the port pin
  *            @arg GPIO_PIN_SET: to set the port pin
  * @retval None
  */
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

反转GPIO电平的函数

/**
  * @brief  Toggles the specified GPIO pin
  * @param  GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral
  * @param  GPIO_Pin: Specifies the pins to be toggled.
  * @retval None
  */
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)

读取GPIO输入电平的函数

/**
  * @brief  Reads the specified input port pin.
  * @param  GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral
  * @param  GPIO_Pin: specifies the port bit to read.
  *         This parameter can be GPIO_PIN_x where x can be (0..15).
  * @retval The input port pin value.
  */
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值