打印

这两种GPIO口的配置方式有什么不同?

[复制链接]
205|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
没名字的人|  楼主 | 2019-11-24 12:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按库函数的方法,我们一般是这么配置GPIO口参数的:

GPIO_InitTypeDef  GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;        
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
GPIO_Init(GPIOA, &GPIO_InitStructure);

还有一种方法是:

GPIOA->CRL&=0XFFFFFFF0;
GPIOA->CRHL=0X00000003;

这两种方式,我都能明白,问题是,我扫了一眼GPIO_Init()的代码,里面一堆if语句,我不理解的是:如果用第二种这么简单的办法,那库函数为什么还要做一堆if判断呢?

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

420

主题

432

帖子

0

粉丝