STM32入门笔记——GPIO的初始化

GPIO的初始化

初始化步骤
1、先时钟使能
2、对其进行具体配置(输出模式、端口、速率)
3、一般还对其输出进行默认配置,如默认高电平/低电平
STM32GPIO的模式有GPIO模式

库函数配置法

1、先时钟使能
2、对其进行具体配置(输出模式、端口、速率)
3、一般还对其输出进行默认配置,如默认高电平/低电平
下面展示一些 内联代码片

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOB时钟的使能
    
    GPIO_InitTypeDef GPIO_InitStructure; //一个结构体 指定结构体名
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //配置输出模式为推挽输出
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;         //配置端口为 5号口 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //配置输出频率为50MHZ
	GPIO_Init(GPIOB,&GPIO_InitStructure);        //一个结构体 通用语句     

GPIO_ResetBits(GPIOB,GPIO_Pin_5);    //ResetBits  置为低电平
GPIO_SetBits(GPIOB,GPIO_Pin_5);      //SetBits  置为高电平
    

输出速率的类型

寄存器配置法

实例如下 内联代码片

 RCC->APB2ENR |= 1<<3;	 //B的时钟使能
GPIOB->CRL &= 0xFF0FFFFF;
  //指明配置端口。因为led灯连接的是5号口,故第 5+1 = 6 为 0,其他位不变
  
GPIOB->CRL |= 0x00300000; 
//参考CRL的寄存器原理,该出置为通用50MHZ的推挽输出。即使0011.化为16进制即是3.位置同上

GPIOB->ODR&=~(1<<5);    //B的5号位置0,低电平
GPIOB->ODR|=1<<5;     //B的5号位置1,**配置端口高低电平**

CRL寄存器原理图如下在这里插入图片描述

RCC->APB2ENR |= 1<<3:即是将其apb2寄存器的第三位置1(实际上是第四为,寄存器第一位都是0)
3号位GPIOB相连,APB2寄存器参考下图(其他APB寄存器配置见**“中文参考手册6.3.7”**)
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

位操作法

初始化部分可参考前两种方法
这里强调其使用
注意需要调用
#include “sys.h” //使用位操作必须引用这个头文件
下面展示一些 内联代码片

PBout(5) = 1;  //B5 号口设置为高电平
PBout(5) = 1;//B5 号口设置为低电平
	
  • 15
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
STM32F4中,GPIO初始化是通过调用HAL_GPIO_Init()函数来实现的。在初始化之前,需要包含"stm32f4xx.h"和"stm32f4xx_gpio.h"头文件。具体的初始化配置可以在GPIO_InitTypeDef结构体中设置,包括引脚、模式、上下拉等参数。例如,如果要将GPIO配置为输出模式,可以在初始化之后调用HAL_GPIO_WritePin()函数来设置输出的高低电平。另外,如果要将GPIO配置为外部中断模式,可以将GPIO_InitTypeDef的成员变量Mode配置为中断模式,并设置好触发方式,然后调用HAL_GPIO_Init()函数来配置GPIO复用功能寄存器。同时,还需要进行中断的初始化和配置,包括中断优先级和使能。具体的代码实现可以参考引用\[1\]和引用\[3\]中的示例代码。 #### 引用[.reference_title] - *1* *3* [初探STM32F4(5)--GPIO(2)](https://blog.csdn.net/qq_40977850/article/details/106122648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [STM32自学笔记--1.GPIO初始化配置](https://blog.csdn.net/qq_57346347/article/details/124599976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值