STM32入门笔记——GPIO的初始化
Posted 若你遇见她
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32入门笔记——GPIO的初始化相关的知识,希望对你有一定的参考价值。
GPIO的初始化
初始化步骤
1、先时钟使能
2、对其进行具体配置(输出模式、端口、速率)
3、一般还对其输出进行默认配置,如默认高电平/低电平
STM32GPIO的模式有
库函数配置法
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 号口设置为低电平
以上是关于STM32入门笔记——GPIO的初始化的主要内容,如果未能解决你的问题,请参考以下文章