STM32 GPIO工作方式

来源:互联网 发布:国企程序员 编辑:程序博客网 时间:2024/06/12 23:44

注意:stm32f1 io口3.3v 部分引脚可以识别5v (I/0 LEVEL 有TF标识)

共有8种方式
输入:
GPIO_Mode_AIN 模拟输入输入的是电压值,不是高低电平

GPIO_Mode_IN_FLOATING 浮空输入

GPIO_Mode_IPD 下拉输入

GPIO_Mode_IPU 上拉输入

输出:

GPIO_Mode_Out_OD 开漏输出:只可以用作强低电平,高电平靠外部电阻拉高。输出端相当于三极管的集电极,高电平状态需要上拉电阻,适合于做电流型驱动,其吸收电流能力相对强

GPIO_Mode_Out_PP 推挽输出:可以输出强高低电平,连接数字器件

GPIO_Mode_AF_OD 复用开漏输出

GPIO_Mode_AF_PP 复用推挽输出用的最多的是推挽输出,开漏输出,上拉输出每组GPIO端口包括7个寄存器:

两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH):4位对应一个i/o口

两个32位数据寄存器GPIOx_IDR(输入数据寄器)和GPIOx_ODR(输出数据寄存器)

一个32位置位/复位寄存器(GPIOx_BSRR):高位1对应0,低位1对应1

一个16位复位寄存器(GPIOx_BRR),一个32位锁定寄存器(GPIOx_LCKR)

每个I/O端口位可以自由编程,I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)。

端口复用
端口重映射(布线方便)
所有IO都可以中断输入

0 0