×
单片机 > 单片机程序设计 > 详情

按键点亮LED灯

发布时间:2020-05-27 发布时间:
|

#include"sys.h"
#include"EXTI.h"
#include"led.h"



int main(void)
{
 NVIC_Configuration();
 Led_Init();
 EXTI_KEY_Init();
 
 while(1)
 {
    LED=1;


 }  
 
}


void EXTI15_10_IRQHandler(void)
{
  if(EXTI_GetFlagStatus(EXTI_Line10) == 1)
 {
  LED =0;
  EXTI_ClearFlag(EXTI_Line10); 
   }
 if(EXTI_GetFlagStatus(EXTI_Line11) == 1)
 {
   LED =1;
  EXTI_ClearFlag(EXTI_Line11); 


 }  
 
}


#include
//PC13


void Led_Init(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_Init(GPIOC, &GPIO_InitStructure);
}

#ifndef _LED_H_
#define _LED_H_
#define LED PCout(13)
#include "sys.h"




void Led_Init(void);





#endif

#include"EXTI.h"
void EXTI_KEY_Init(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
  EXTI_InitTypeDef EXTI_InitStructure;
 NVIC_InitTypeDef NVIC_InitStructure;
 
 RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_AFIO,ENABLE);
 
 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_10 | GPIO_Pin_11;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
 GPIO_Init(GPIOB, &GPIO_InitStructure);
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10);


 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource11);


 EXTI_InitStructure.EXTI_Line =EXTI_Line10;
 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
 EXTI_InitStructure.EXTI_LineCmd = ENABLE;
 
 EXTI_InitStructure.EXTI_Line =EXTI_Line11;
 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
 EXTI_InitStructure.EXTI_LineCmd = ENABLE;
 EXTI_Init(&EXTI_InitStructure); 


 NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);

 }

#ifndef _EXTI_H_
#define _EXTI_H_
#include "sys.h"



void EXTI_KEY_Init(void);
#endif


关键字:按键点亮  LED灯 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义