使用的是正点原子的源码,一直没有搞明白初始化的时候是怎么给相关的寄存器赋值的,今天琢磨了一下:
首先,创建了一个GPIO_InitTypeDef类型的结构体变量GPIO_InitStructure
GPIO_InitTypeDef GPIO_InitStructure;
然后 通过【结构体名称.成员名称】的方式给每个成员变量赋值
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;//LED0和LED1对应IO口,
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
然后调用GPIO_Init()函数
GPIO_Init(GPIOF, &GPIO_InitStructure);
具体的实现过程如下:涉及到以下几个文件
stm32f4xx.h
stm32f4xx_gpio.h
led.c
扫描二维码关注公众号,回复:
16770425 查看本文章
大致的示意图如下: