TM4C外部中断处理函数不执行

Conhecemos Conhecemos 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//谢谢各位啦

int in_light = 1;
int FLAG = 1;

void Key2IntHandler(void)//中断服务函数
{
FLAG = 1;

in_light = ~in_light;

GPIOIntClear(GPIO_PORTF_BASE,GPIO_INT_PIN_4);

}
//我尝试把 in_light = ~in_light; 这句话删掉,删掉之后是可以将LED熄灭的。也就是可以执行中断服务函数
//感觉中断服务函数里面只能写一句话

void main(void)
{
//初始化
SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_XTAL_16MHZ|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN);//配置系统时钟80MHz
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);
GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_FALLING_EDGE); //设置PF4中断类型 GPIOIntEnable(GPIO_PORTF_BASE,GPIO_PIN_4); //使能PF4中断
GPIOIntRegister(GPIO_PORTF_BASE, Key2IntHandler); //为PF4注册一个中断处理句柄

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);//使能PA引脚
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE,GPIO_PIN_4);//配置PA4输出
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<4);//配置LED3开始时点亮

while(1)
{
if(FLAG)
{
if(!in_light)
{
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);
}
if(in_light)
{
GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<4);
}
FLAG = 0;
}
}
}
...全文
评论 1
收藏 已收藏
分享
返回顶部
Conhecemos
单片机/工控 27,522 成员 28,796 内容