GPIO
对于缩写我们很难得知其意,所以我们要知道其全称以便于我们理解。
GPIO:General Purpose Input Output即通用输入输出,意思就是干什么都行。
GPIO的工作方式:
输入浮空:
输入上拉:即上拉电阻接通
输入下拉:即下拉电阻接通
模拟输入:即输入模拟量(0-3v)
开漏输出:类似于51单片机的P0。
当写1时,N-Mos管关闭,IO口位浮空(三态),其值由外部上下拉电阻决定。
当写0时,N-Mos管开启,将IO口接地,IO口输出为0。
开漏复用:与开漏输出模式类似,区别是其0、1控制的来源是复用功能的外设。
推挽输出:与开漏输出相似。
但,当写1时,P-Mos管导通,N-Mos管关闭,即输出1。
当写0时,P-Mos管关闭,N-Mos管导通,即输出0。
推挽复用输出与推挽输出的区别与开漏输出、开漏复用的区别一样,其0、1控制的来源不同。
开漏输出与推挽输出的区别:
推挽输出:可输出强高低电平(数字量),连接数字器件。
开漏输出:只可以输出强低电平,高电平要靠外部电阻拉高。输出端相当于三级管的集电极,要得到高电平状态需要上拉电阻,其吸收电流能力相对强(20mA以内),适合做电流型驱动。
施密特触发器:就是高于或低于上下限时将模拟量转换为数字量的高低电平。
GPIO相关寄存器 共7个
端口配置低寄存器(GPIO_CRL)(PX0-PX7)
端口配置高寄存器(GPIO_CRH)(PX8-PX15)
CRL/CRH每四个位控制一个IO口
一组IO口有16个,
所以需要两个配置寄存器(一个GPIOX_CRL,一个GPIOX_CRH)。
端口输入数据寄存器(GPIOX_IDR)
端口输出数据寄存器(GPIOX_ODR)
端口位设置/清除寄存器(GPIOX_BSRR)
高16位比较少用,一般用GPIOX_BRR来代替
端口位清除寄存器(GPIOX_BRR)
功能作用与(GPIOX_BSRR)的高16位的功能相同。
STM引脚功能说明:
1.端口复用功能:
端口不但可以作为通用IO口,还可以复用为一些外设的引脚。
目的是最大限度的利用端口资源。
2.端口重映射功能:
可以把某些功能的引脚映射到其他引脚,就是把一个引脚的的功能转移给其他引脚。目的是方便布线。
3.STM32的所有IO口都可以作为中断输入。