STM32 学习笔记——GPIO口控制

在配置STM32外设的时候,任何都要先使能该外设的时钟!PB2ENR 是 APB2总线上的外设时钟使能寄存器

我们要使能的PORTA和PORTD的时钟使能位,分别在的时钟使能位,分别在bit2和bit5,只要将这两位置1就可以使能PORTA和PORTD了

STM32的每个IO端口都有7个寄存器来控制。

他们分别是:配置模式的2个32位的端口配置寄存器 CRL 和 CRH;2个32位的数据寄存器IDR 和 ODR ;1个32位的置

复位寄存器 BSRR ;一个 16 位的复寄存器 位的复寄存器 BRR ;1个 32 位的 锁存 寄存器 LCKR ;

这里我们仅介绍常用 的 几个寄存器,我们常用的 IO 端口寄存器只有 4个: CRL 、CRH、IDR 、ODR。

每组IO口一共有16个,CRH控制着高8个IO口,CR控制着高低8个IO口;

具体配置模式如下:

这里我们可以记住几个常用的配置,比如 0X0表示模拟输入模式( ADC 用)、 0X3 表示推挽输出模式(做输出口用, 50M 速率)、 0X8 表示上 /下拉输入模式(做输入口用)、 0XB表示复用输出(使IO 口的第二功能, 50M 速率)。

IDR 是一个端口输入数据寄存器,只用了低 16 位。该寄存器为只读,并且能以 16 位的形式读出。 要想知道某个IO口的状态,你只要读这个寄存器,再看某位的状态就可以了。

ODR 是一个端口输出数据寄存器,只用了低 16 位。该寄存器为可读写,并且能以 16 位的形式读写。 要想控制某个IO口的输出状态。而向该寄存器写数据,则可以控制某个IO口的输出电平

//PC11输出高

经验分享 程序员 微信小程序 职场和发展