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

GPIO的初始化

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

库函数配置法

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  置为高电平
    

STM32入门笔记——GPIO的初始化_第2张图片

寄存器配置法

实例如下 内联代码片

 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寄存器原理图如下STM32入门笔记——GPIO的初始化_第3张图片

RCC->APB2ENR |= 1<<3:即是将其apb2寄存器的第三位置1(实际上是第四为,寄存器第一位都是0)
3号位GPIOB相连,APB2寄存器参考下图(其他APB寄存器配置见**“中文参考手册6.3.7”**)
STM32入门笔记——GPIO的初始化_第4张图片
STM32入门笔记——GPIO的初始化_第5张图片STM32入门笔记——GPIO的初始化_第6张图片

位操作法

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

PBout(5) = 1;  //B5 号口设置为高电平
PBout(5) = 1;//B5 号口设置为低电平
	

你可能感兴趣的:(STM32入门笔记,stm32)