新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2021-10-4
- 在线时间
- 4 小时
|
3金钱
虚心向大家求教,我太菜了,弄了半天也没弄懂。我设计了一个按下电容触摸按键就可以返回主界面的外部中断,跟着视频一步一步来的,但是还是没有办法实现功能,请问大家能帮我看看中断函数怎么出错了吗
void EXTIX_Init(void)//中断使能
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
TPAD_Init(6);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //复用使能
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //GPIO口使能 !!!但是我不知道这个部分使能用哪个,很可能是这出了问题
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource1);
EXTI_InitStructure.EXTI_Line=EXTI_Line1; //
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//上升沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; //
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; //设置优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_Init(&NVIC_InitStructure);
}
void EXTI1_IRQHandler(void)
{
delay_ms(10);//消抖
if(TPAD_Scan(0)) //如果扫描到上升沿
{
tp_dev.init(); //初始化
lv_init(); //
lv_port_disp_init(); //
lv_port_indev_init(); //
test_start(); //进入主界面
}
EXTI_ClearITPendingBit(EXTI_Line1); //
}
|
|