弟4 章I/O 端口及中断I/O 口(GPIO)一、GPIO 的概述:GPI/O,通用型之输入输出(General Pu rpose I/O)的简称,对于 stm32 的学习,应该从最基本的 GPIO 开始学习:首先看看 STM32的 datasheet 上对 GPIO 口的简单介绍:每个 GPI/O 端口有两个 32位配置寄存器(GPIOx _CRL,GPIOx _CRH),两个 32 位数据寄存器(GPIOx _IDR,GPIOx _ODR),一个 32 位置位/复位寄存器(GPIOx _BSRR),一个 16 位复位寄存器(GPIOx _BRR)和一个 32 位锁定寄存器(GPIOx _LCKR)
共 7 组寄存器
GPIO 端口的每个位可以由软件分别配置成多种模式
每个 I/O 端口位可以自由编程,然而 I/0 端口寄存器必须按 32 位字被访问(不允许半字或字节访问)
GPIOx _BSRR 和 GPIOx _BRR 寄存器允许对任何 GPIO 寄存器的读/更改的独立访问;这样,在读和更改访问之间产生 IRQ 时不会发生危险
我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR 、ODR
CRL 和 CRH 控制着每个 IO口的模式及输出速率
二、 GPIO 的配置:当使用 GPIO 时,需要两步
一是:配置模式,二是配置时钟
对于模式配置共有 8 种,可以通过编程选择:1
浮空输入 :GPIO_Mode_IN_FLOATING2
带上拉输入:GPIO_Mode_IPU3
带下拉输入:GPIO_Mode_IPD4
模拟输入:GPIO_Mode_AIN5
开漏输出:GPIO_Mode_Out_OD6
推挽输出:GPIO_Mode_Out_PP7
复用功能的推挽输出:GPIO_Mode_AF8
复用功能的开漏输出:GPIO_Mode_