[STM32F1] 按键按了灯不灭

[复制链接]
535|10
 楼主| xxrs 发表于 2017-10-28 09:40 | 显示全部楼层 |阅读模式
IO, pi, GPIO, gp, TI
void EXTI_PC5_Configuration(void);

int main(void)
{
LED_Configuration();
LED1_ON;
EXTI_PC5_Configuration();
while(1)
{

}
}


void LED_Configuration()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);  
}


void EXTI_PC5_Configuration()
{
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);/***¿ªÆôʱÖÓ***/

NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStructure);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource5);
EXTI_InitStructure.EXTI_Line=EXTI_Line5;
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStructure);
}



void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
{
  GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)(1-GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)));
  EXTI_ClearITPendingBit(EXTI_Line5);
}
}
morrisk 发表于 2017-10-28 10:03 | 显示全部楼层
什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| xxrs 发表于 2017-10-28 10:06 | 显示全部楼层
PC5连接K1,PB5连接LED1
xxmmi 发表于 2017-10-28 10:07 | 显示全部楼层

如果你不会配置IO口的工作模式建议别配置直接使用
zwll 发表于 2017-10-28 10:08 | 显示全部楼层

嗯,因为默认的就是双向IO。
juventus9554 发表于 2017-10-28 10:10 | 显示全部楼层
另外中断模式不会配置也别配置,直接默认的IO功能实现,做好检测功能。
 楼主| xxrs 发表于 2017-10-28 10:12 | 显示全部楼层
请问这个程序如何修改,才能正确。
renyaq 发表于 2017-10-28 10:13 | 显示全部楼层
你写的太抽象了,难以理解。。你看看官方的例程怎么写的吧。
renyaq 发表于 2017-10-28 10:13 | 显示全部楼层
你写的太抽象了,难以理解。。你看看官方的例程怎么写的吧。
supernan 发表于 2017-10-28 10:15 | 显示全部楼层
你的Key是高电平触发还是低电平,怎么来个低电平判断
 楼主| xxrs 发表于 2017-10-28 10:16 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家,结贴了哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部