野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13307|回复: 1

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

[复制链接]
发表于 2015-6-30 10:26:16 | 显示全部楼层 |阅读模式
按库函数的方法,我们一般是这么配置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判断呢?

  
回复

使用道具 举报

发表于 2015-6-30 16:50:08 | 显示全部楼层
GPIO_Init的代码,它要适应不同参数下生成不同的配置,没法直接写成这样赋值
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-23 18:01 , Processed in 0.031719 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表