新闻中心

EEPW首页>嵌入式系统>设计应用> STM32 GPIO的配置

STM32 GPIO的配置

作者: 时间:2016-11-25 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201611/321141.htm

#define IS_GPIO_SPEED(SPEED) ((SPEED == GPIO_Speed_10MHz) ||

(SPEED == GPIO_Speed_2MHz) || (SPEED == GPIO_Speed_50MHz))

做一个GPIO输出的试验

当I/O 端口被配置为推挽模式输出时:输出寄存器上的0 激活N-MOS,而输

出寄存器上的1 将激活P-MOS。

用这段程序实现:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

int main(void)

{

#ifdef DEBUG

debug();

#endif

RCC_Configuration();

NVIC_Configuration();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 |

GPIO_Pin_7;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOC, &GPIO_InitStructure);

while (1)

{

GPIO_SetBits(GPIOC, GPIO_Pin_4); //设置PC.04 pin为高电平,点亮

LED1

Delay();

GPIO_ResetBits(GPIOC, GPIO_Pin_4); //设置PC.04 pin为低电平,熄灭

LED1

Delay();

}

}

做一个GPIO输入的试验:以EK-STM32F中LCDdemo做例子

这个试验中把GPIO的PD.04做为按键输入,当下降沿来临时触发。

LCDdemo中的例程如下:首先配置按键PD.03, PD.04为按键输入接口。

void Button_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOD, &GPIO_InitStructure);

}

下面为按键作用是启动外部中断

GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource3);

EXTI_InitStructure.EXTI_Line = EXTI_Line3;//设定外部中断3

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设定中断模式

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //设定下降沿触

发模式

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);


上一页 1 2 下一页

关键词:STM32GPIO配

评论


技术专区

关闭