SMT32学习笔记(GPIO)

GPIO

在STM32中所有GPIO都是挂在APB2外设总线上的,GPIO外设命名GPIOA,GPIOB,GPOIC......

GPIO基本结构

寄存器是一段特殊的存储器,内核可以通过APB2总线对寄存器进行读写 ,从而完成输出或者读取电平功能。寄存器的每一位都对应一个引脚。STM32是32位的,寄存器也都是32位的,多以寄存器只有低16为对应端口,高16位没有用到。驱动器是增加信号的驱动能力。

GPIO位结构

如果导通拉电阻不导通拉电阻,默认为是电平输入(如果是低电平输入,则电流由Vdd经过上拉电阻流入输入的低电平,则信号无法进入芯片)

如果导通拉电阻不导通拉电阻,默认为是电平输入(如果是高电平输入,则电流由输入的高电平经过下拉电阻流入Vss,则信号无法进入芯片)

开漏模式可以作为通讯协议的驱动方式,在多机通讯的情况下避免各个设备的互相干扰。另外开漏模式可以作为5V的输出,外部Vcc(5V)接上拉电阻后接入I/O引脚,当输出低电平是N-MOS导通,输出IO脚输出低电平(Vss),当输出高电平N-MOS断开,IO脚由外界Vcc输出5V。

当IO脚设置为输入模式时P-MOS和N-MOS都关闭。

操作STM32的GPIO总共需要三个步骤

1使用RCC开启GPIO的时钟

2使用GPIO_Init函数初始话GPIO

GPIO_Mode_AIN = 0x0, //模拟输入

  GPIO_Mode_IN_FLOATING = 0x04,//浮空输入

  GPIO_Mode_IPD = 0x28,//下拉输入

  GPIO_Mode_IPU = 0x48,//上拉输入

  GPIO_Mode_Out_OD = 0x14,//开漏输出

  GPIO_Mode_Out_PP = 0x10,//推挽输出

  GPIO_Mode_AF_OD = 0x1C,//复用开漏

  GPIO_Mode_AF_PP = 0x18//复用推挽

3使用输出或输入函数控制GPIO口

(涉及到RCC和GPIO两个外设)

在Library中可以找到rcc.h和gpio.h头文件,查看两个外设的库函数。

RCC主要用到

void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);

//AHB外设时钟控制

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

//APB2外设时钟控制

void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);

//APB1外设时钟控制

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值