STM32F103 GIPO口的寄存器 GRH、CRL理解与使用

(这篇文章是接我上一篇文章的)
https://blog.csdn.net/ddddd_y/article/details/107915757

在这里我们可以看到,CNF是一个控制这个io口实际上输出的是什么输出,然后我们在回到这里

8<<12 = 0x80 =10 00 … 00控制寄存器的MODE是输入模式

然后10 在这里决定的是输入模式的类型。
这里的8<<12 就直接让io口表达的是 输入模式:上拉/下拉输入。大概就是这个意思。

三、GPIOX->ODR|=1<<X;这个用法的使用

ORD 这个用法也是基于CRL和CRH的基础之上的,在GPIO口里面应该是控制输出的是高电平和低电平的。举个例子:
假如我现在设置的CRL|=0X3000 0000 是推挽输出。
比如我想输出 GPIOB 的pin7是高电平就直接GPIOB->ODR|=1<<7;
设置的CRL|=0X0300 0000 是推挽输出。我想输出 GPIOB 的pin6是高电平就直接GPIOA->ODR|=1<<6;
低电平就只需要将1改为0,GPIOX->ODR|=0<<X

如果是CRL|=0X8000 0000 讲的就不是推挽输出,而是上拉下拉 , 1<<7 上拉,也输出高电平。

所以其他也是如此,可以很好的区分。

本文地址:https://blog.csdn.net/ddddd_y/article/details/107917109