STM32 学习笔记——GPIO口控制

来源:互联网 发布:网络不稳定是什么原因 编辑:程序博客网 时间:2024/06/05 14:08

在配置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输出高

0 0
原创粉丝点击