关于嵌入式学习随笔->2《GPIO基础知识》

1、GPIO入门知识

GPIO是什么?

GPIO全称general purpose input output通用输入输出端口,GPIO口既可以做输入也可以做输出,这些都是通过配置GPIO的工作模式来实现的。

·STM32FXXXIGT6:一共有9组IO口:PA~PI(PI只有PI0~PI11);一共有140个IO口:16*8+12=140

STM32的大部分引脚都除了可以当作GPIO口来使用,还可以复用为外设功能引脚,如串口等。

集体引脚复用功能查找对应的芯片数据手册即可。

2、GPIO的8种工作模式(GPIO_Mode)

看IO口电路图更容易理解

·四种输入模式

输入浮空 :外部输入直接进入IDR寄存器,施密特触发器打开

输入上拉:外部输入经过上拉进入IDR寄存器,施密特触发器打开

输入下拉:外部输入经过下拉进入IDR寄存器,施密特触发器打开

模拟输入:模拟输入时,施密特触发器关闭,直接进入模拟通道

·四种输出模式

开漏输出(带上拉或者下拉):只可以输出强低电平,高电平只能由外部上拉,适合做电流型驱动,吸收电流能力较强(一般20mA以内)

开漏复用功能(带上拉或者下拉)

推挽输出(带上拉或者下拉):可以输出高低电平

推挽复用功能(带上拉或者下拉)

·四种最大输出速度F429

-2MHz   低速

-25MHz 中速

-50MHz 快速

-100MHz 高速

对于stm32来说,上电复位后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态。

注意复位后,调试引脚处于复用功能上拉或是下拉状态,不能直接当作IO口使用(PA15,PA14,PA13,PB4,PB3)

3、GPIO寄存器

一般而言M3,M4,M7每组都有十个寄存器,共9*10=90个寄存器

四个32位配置寄存器:

GPIOx_MODE------端口模式寄存器

image

GPIOx_OTYPER------端口输出类型寄存器

image

GPIOx_OSPEEDR------端口输出速度寄存器

image

GPIOx_PUPDR------端口上拉下拉寄存器

image

两个32位数据寄存器:

GPIOx_IDR-------输入数据寄存器

image

GPIOx_ODR-------输出数据寄存器

image

一个32位置位/复位寄存器:GPIOx_BSRR

image

一个32位锁存寄存器:GPIOx_LCKR

image

两个32位复用功能寄存器:低位GPIOx_AFRL&高位GPIOx_AFRH

image

猜你喜欢

转载自www.cnblogs.com/vcan123/p/10415708.html
今日推荐