学前班
最后登录1970-1-1
在线时间 小时
注册时间2017-10-3
|
本帖最后由 1598879010 于 2017-10-3 03:47 编辑
问题:编译无错误,下载后灯灭了,按住KEY 2键没有实现翻转
1)中断C程序
#include "Exti_Inter_Pin_0.h"
static void NVIC_Inter(void)
{
NVIC_InitTypeDef NVIC_Inter;
//配置中断优先级
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_Inter.NVIC_IRQChannel = EXTI15_10_IRQn ;
NVIC_Inter.NVIC_IRQChannelCmd = ENABLE;
NVIC_Inter.NVIC_IRQChannelPreemptionPriority = 0x01;
NVIC_Inter.NVIC_IRQChannelSubPriority = 0x01;
NVIC_Init( &NVIC_Inter);
}
void Exti_Inter_GPIOC_Pin_13(void)
{
GPIO_InitTypeDef GPIOC_Pin_13_Inter;
EXTI_InitTypeDef EXTI_Ini; //中断初始化
NVIC_Inter();//配置中断优先级分组,属于内核部分
// 初始化GPIOC_Pin_13引脚
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIOC_Pin_13_Inter.GPIO_Pin = GPIO_Pin_13;
GPIOC_Pin_13_Inter.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init( GPIOC, &GPIOC_Pin_13_Inter);
//初始化EXTI0中断
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);//先选则初始线
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//开启时钟
EXTI_Ini.EXTI_Line = EXTI_Line13;
EXTI_Ini.EXTI_LineCmd = ENABLE;
EXTI_Ini.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_Ini.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_Init(&EXTI_Ini);
}
2)中断头文件
#define TOGGLE {GPIOB->ODR^=GPIO_Pin_0;}
3)中断函数
void EXTI15_10_IRQHandler (void)
{
while( EXTI_GetITStatus( EXTI_Line13)!=1);
TOGGLE;
EXTI_ClearITPendingBit(EXTI_Line13);
}
4)主程序
int main()
{
LED_GPIO_PB0_ON();//初始化PB0口
Exti_Inter_GPIOC_Pin_13();
while(1)
{}
调试一下午,对照火哥的程序,我用了按键1的PA0口尝试了一下,发现成功了,但是用PC13口却没成功。没找出问题所在,郁闷。请大虾指点
|
|