小弟初学stm32,还望各位大神能指点下。这个问题你好几天了,conf.h里面所有的文件都使能了,照着视频做的,改的也跟例程一样。还是有这个问题。
代码入下:
#include "key.h"
#include "led.h"
#include "sys.h"
#include "delay.h"
#include "exti.h"
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK mini?STM32开发板
//LED驱动代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2012/9/2
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
//LED IO初始化
void exti_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE); //使能中断时钟
KEY_Init();
/////gpio.c中断线及中断初始化配置
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource5);
EXTI_InitStructure.EXTI_Mode =EXTI_Mode_Interrupt ;//为中断请求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd =ENABLE ; //使能line
EXTI_Initstructure.EXTI_Line=EXTI_Line5; //选定line
EXTI_Init(&EXTI_InitStructure); //中断初始化 */
//////gpioa.15中断线初始化及配置
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource15);
EXTI_InitStructure.EXTI_Mode =EXTI_Mode_Interrupt ;//为中断请求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd =ENABLE ; //使能line
EXTI_Initstructure.EXTI_Line=EXTI_Line15 ; //选定line15
EXTI_Init(&EXTI_InitStructure); //中断初始化
////中断线gpioa。0初始化及配置
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
EXTI_InitStructure.EXTI_Mode =EXTI_Mode_Interrupt ;//为中断请求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //上升沿触发
EXTI_InitStructure.EXTI_LineCmd =ENABLE ; //使能line
EXTI_Initstructure.EXTI_Line=EXTI_Line0; //选定line
EXTI_Init(&EXTI_InitStructure); //中断初始化
//配置中断优先级
NVIC_InitStructure.NVIC_IRQChannel= EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; //确定抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x02; //确定响应优先级
NVIC_Init(&EXTI_InitStructure);
/////////////////////
NVIC_InitStructure.NVIC_IRQChannel= EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; //确定抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01; //确定响应优先级
NVIC_Init(&NVIC_InitStructure);
//
NVIC_InitStructure.NVIC_IRQChannel= EXTI15_10_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; //确定抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x00; //确定响应优先级
NVIC_Init(&NVIC_InitStructure);
}
void EXTI0_IRQHandler(void)
{
delay_ms(50) ;
if(WAKEUP==1)
{
LED0=!LED0;
LED1=!LED1;
}
EXTI_ClearITpendingBit(EXTI_Line0);
}
void EXTI9_5_IRQHandler(void)
{
delay_ms(50) ;
if(KEY0==0)
{
LED0=!LED0;
}
EXTI_ClearITpendingBit(EXTI_Line5);
}
void EXTI15_10_IRQHandler(void)
{
delay_ms(50) ;
if(KEY1==0)
{
LED1=!LED1;
}
EXTI_ClearITpendingBit(EXTI_Line15);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
多吃猪油,有助于这病。
提示:大小写不分。
---------------------------------
谢谢 原子哥。我马上再检查
---------------------------------
原子哥,哪里大小写没分啊 没看出来啊 只有个函数定义那边跟你不一样,也改过来了。
一周热门 更多>