stm32 GPIO配置以及什么时候用 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
问题一:配置GPIO的步骤
?
现在做一个最简单的GPIO控制LED的 GPIO初始化
?
(1)初始化结构体
??????? GPIO_InitTypeDef GPIO_InitStructure;
?
(2)使能相应的时钟(程序最初应该有#define RCC_GPIO_LED??GPIOB 或其他组端口)
????? ? RCC_APB2PeriphClockCmd(RCC_GPIO_LED??, ENABLE);??
?
(3)对GPIO结构体初始化。
??????? GPIO结构体:
????? typedef struct
???? {
????? ?uint16_t GPIO_Pin;????//选择管脚,是你想用到的管脚???????
???????GPIOSpeed_TypeDef GPIO_Speed;??//选择速度 可选2M? 10M? 50M
?????? GPIOMode_TypeDef GPIO_Mode;??//输入输出的8种模式,这要根据外电路和作用选择?
?????}GPIO_InitTypeDef;
????? /* LEDs pins configuration */
??????? ?GPIO_InitStructure.GPIO_Pin = GPIO_LED_ALL;
??????? ?GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
???????? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;? //LED 一般就选推挽输出了
??????? ?GPIO_Init(GPIO_LED, &GPIO_InitStructure);
?
?
?
问题二: 什么时候用 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
?
????????
??????????? GPIO_InitStructure.GPIO_Mode? = GPIO_Mode_IPU;中IPU是指IO口的工作模式是带上拉输入,这个和具体的电路有关,总之如果选择某个IO口作为外部中断的触发信号,就必须配置这个IO口为输入模式,不然无法触发中断