新手上路
- 积分
- 27
- 金钱
- 27
- 注册时间
- 2019-12-4
- 在线时间
- 7 小时
|
1金钱
我是用的战舰的板子在Pa0口插了一个按键通过按键实现中断代码编完没有错误就是不出结果大佬们帮忙看看吧
key.c文件
#include "stm32f10x.h"
#include "key.h"
#include "delay.h"
void KEY_Init(void)
{
GPIO_InitTypeDef K;
EXTI_InitTypeDef E;
NVIC_InitTypeDef N;
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO ,ENABLE );
K.GPIO_Mode = GPIO_Mode_IPD;
K.GPIO_Pin = GPIO_Pin_0;
GPIO_Init (GPIOA,&K);
E.EXTI_Line = EXTI_Line0;
E.EXTI_LineCmd = ENABLE;
E.EXTI_Mode = EXTI_Mode_Interrupt;
E.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&E);
N.NVIC_IRQChannel = EXTI0_IRQn;
N.NVIC_IRQChannelCmd = ENABLE;
N.NVIC_IRQChannelPreemptionPriority = 1;
N.NVIC_IRQChannelSubPriority = 1;
NVIC_Init(&N);
}
main.文件
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
u16 flag ;
void EXTI1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) !=RESET)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == 1)
{
flag ++;
if(flag %2 == 0)
LED0 = 1;
else
LED0 = 0;
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
KEY_Init();
LED_Init();
while(1)
{
LED1 = 0;
}
}
|
|