GPIO(GPIO_InitTypeDef GPIO_InitStructure)

2019-07-20 17:41发布

资料开头有个这个:GPIO_InitTypeDef GPIO_InitStructure;我上网查说什么声明结构体,初始化GPIO用的等等一些,但是查了一宿也不懂,老感觉这些百度的专业术语太强,您能给通俗易懂的指点一下吗,GPIO_InitTypeDef GPIO_InitStructure这个语句用在哪里啊?还有GPIO初始化,为什么要初始化啊,初始化到底是个啥,下面是我百度的讲解,得您所言不胜感激 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 19:07
用在IO初始化.
是一个结构体,说白了就是一堆参数的集合.
然后配置这个结构体的各个参数,最后通过某个函数,以这个结构体为参数对IO进行初始化.就完成了IO设置.

看看我们库函数的教程吧.
lycreturn
2楼-- · 2019-07-20 21:23
typedef struct
{
  uint32_t GPIO_Pin;              /*!< Specifies the GPIO pins to be configured.
                                       This parameter can be any value of @ref GPIO_pins_define */

  GPIOMode_TypeDef GPIO_Mode;     /*!< Specifies the operating mode for the selected pins.
                                       This parameter can be a value of @ref GPIOMode_TypeDef */

  GPIOSpeed_TypeDef GPIO_Speed;   /*!< Specifies the speed for the selected pins.
                                       This parameter can be a value of @ref GPIOSpeed_TypeDef */

  GPIOOType_TypeDef GPIO_OType;   /*!< Specifies the operating output type for the selected pins.
                                       This parameter can be a value of @ref GPIOOType_TypeDef */

  GPIOPuPd_TypeDef GPIO_PuPd;     /*!< Specifies the operating ull-up/Pull down for the selected pins.
                                       This parameter can be a value of @ref GPIOPuPd_TypeDef */
}GPIO_InitTypeDef;
用结构体GPIO_InitTypeDef  声明一个结构体变量GPIO_InitStructure    这个结构体变量是用于初始化通用IO口的,包括IO口的引脚,模式,速度等   关于结构体的问题   最好去看看C语言

初始化   就是为你要做某件事情做前期准备    举个不是很好的例子,上课铃声响了,这节课是数学课,那么你的初始化工作就是进入教室,准备好这节数学课要用的东西   比如数学课本  资料等
Fabby
3楼-- · 2019-07-21 02:36
正点原子 发表于 2015-3-12 15:28
用在IO初始化.
是一个结构体,说白了就是一堆参数的集合.
然后配置这个结构体的各个参数,最后通过某个函数, ...

GPIO_InitTypeDef GPIO_InitStructure;//定义结构体GPIO_InitStructure
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
        /*F9初始化*/
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
       
        GPIO_Init(GPIOF,&GPIO_InitStructure);//&GPIO_InitStructure取地址



原子哥,请问一下为何GPIO_Init(GPIOF,&GPIO_InitStructure);。。。。。GPIOF不是取地址,而GPIO_InitStructure要取地址?这个没有理解,能帮解释一下吗??并且#define GPIOF    ((GPIO_TypeDef *) GPIOF_BASE)   这句话中((GPIO_TypeDef *) GPIOF_BASE) 是说GPIOF_BASE是GPIO_TypeDef结构体变量的意思吗?GPIOF_BASE继续查找下去好像是表示一个地址值吧?我这些理解不了,能指导一下吗?

一周热门 更多>