djclubyb djclubyb
关注数: 0 粉丝数: 7 发帖数: 97 关注贴吧数: 10
怎样用MDK软件仿真按键中断控制LED(无key按键代码的) #include"stm32f10x.h" #define LED1_ON GPIO_SetBits(GPIOC,GPIO_Pin_3) #define LED1_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_3) void LED_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_3); } static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_Init(&NVIC_InitStructure); } void EXTI_PE5_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE); NVIC_Configuration(); GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; GPIO_Init(GPIOE,&GPIO_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,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); } int main(void) { LED_GPIO_Config(); LED1_ON; EXTI_PE5_Config(); while(1) { } } stm32f10x_it.c里面的 void EXTI9_5_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line5) !=RESET) { GPIO_WriteBit(GPIOC,GPIO_Pin_3, (BitAction)((1-GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_3)))); EXTI_ClearITPendingBit(EXTI_Line5); } }
1 下一页