欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-11 20:45:53
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口表达的是 输入模式:上拉...

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

(这篇文章是接我上一篇文章的)
https://blog.csdn.net/ddddd_y/article/details/107915757
STM32F103 GIPO口的寄存器 GRH、CRL、ODR理解与使用___2
在这里我们可以看到,CNF是一个控制这个io口实际上输出的是什么输出,然后我们在回到这里
STM32F103 GIPO口的寄存器 GRH、CRL、ODR理解与使用___2
8<<12 = 0x80 =10 00 … 00控制寄存器的MODE是输入模式
STM32F103 GIPO口的寄存器 GRH、CRL、ODR理解与使用___2
然后10 在这里决定的是输入模式的类型。STM32F103 GIPO口的寄存器 GRH、CRL、ODR理解与使用___2
这里的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

相关标签: stm32