对于STM32,为什么 GPIOA->CRH&=0X0F0FFFFF;的意思是PA13,15设置成输入,在线等

0X0F0FFFFF每位都是什么意思??换算成二进制也看不出来呀!?... 0X0F0FFFFF每位都是什么意思??换算成二进制也看不出来呀!? 展开
 我来答
Se7enCore
推荐于2018-02-27 · TA获得超过133个赞
知道答主
回答量:10
采纳率:0%
帮助的人:5.5万
展开全部
认真看下手册,下面是我引用的一段,应该能助你理解了~~

端口低配置寄存器寄存器的复位值为0X4444 4444,,复位值其实就是配置端口为浮空输

入模式。STM32的CRL控制着每个IO端口(A~G)的低8位的模式。每

个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE。这里我们可以记住几个

常用的配置,比如0X4表示模拟输入模式(ADC用)、0X3表示推挽输出模式(做输出口用,

50M速率)、0X8表示上/下拉输入模式(做输入口用)、0XB表示复用输出(使用IO口的第二

功能,50M速率)。

CRH的作用和CRL完全一样,只是CRL控制的是低8位输出口,而CRH控制的是高8

位输出口。这里我们对CRH就不做详细介绍了。

给个实例,比如我们要设置PORTC的11位为上拉输入,12位为推挽输出。代码如下:

GPIOA->CRH&=0XFFFFFFF0;

GPIOA->CRH|=0X00000003;//PA8 推挽输出

GPIOA->ODR|=1<<8;
//PA8 输出高

再如:

GPIOC->CRH&=0XFFF00FFF;//清掉这2个位原来的设置,同时也不影响其他位的设置

GPIOC->CRH|=0X00038000; //PC11输入,PC12输出

GPIOC->ODR=1<<11;//PC11上拉

通过这3句话的配置,我们就设置了PC11为上拉输入,PC12为推挽输出
1099550372ghgh
2018-04-19
知道答主
回答量:2
采纳率:0%
帮助的人:1643
展开全部
GRH&GRL= 0x0F0F FFFF 0000 0000是这样的;所以PA13,15对应的是0x0(即0000);

0000 = CNF1 CNF0 MODE1 MODE0;MODE00代表输入模式,CNF 00在输入模式下代表模拟输入。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式