这中断是咋回事??

2019-03-24 12:18发布

最近在调CC1101,中断本来就已经调好了的,,,无奈又出毛病了,,,找不出哪有毛病,就重新建了一个工程,单独做个中断,,就是LAUNCHPAD上面那两个按钮,按一下进入中断把灯点亮.
结果竟然不行......也找不出毛病在哪.......

#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_ints.h"
#include "inc/hw_sysctl.h"
#include "driverlib/sysctl.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.c"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/interrupt.h"
void gpiof(void)                                         //中断处理
{
  GPIOPinIntClear(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_4);  
  GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2,0xff);   //亮
  SysCtlDelay(16881720);
  GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2,0);   //灭
  
}

int main()
{
  ROM_SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |
                       SYSCTL_OSC_MAIN);
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
  GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2);
  GPIOPinTypeGPIOInput(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_4);   //貌似以前测试的时候,设不设置成输入不影响中断的检测
  IntEnable(INT_GPIOF);
  GPIOPinIntEnable(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_4);     //两个按钮,上电是高,按下是低.
  GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_0|GPIO_PIN_4,GPIO_FALLING_EDGE);
  IntMasterEnable();   
  while(1);
}

startup里面也声明好了:

extern void gpiof(void);
    gpiof,                      // GPIO Port F

几个月前做着还可以,,,今天怎么不行了?? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Study_Stellaris
1楼-- · 2019-03-24 15:52
< 与中断有关的 NVIC 时钟使能一下.
仔细检查 startup.s 里边是否对应了 ISR.
另外,可以尝试用软件触发中断试试,看能不能进去.
zgbkdlm
2楼-- · 2019-03-24 18:03
 精彩回答 2  元偷偷看……
Study_Stellaris
3楼-- · 2019-03-25 00:02
这个问题确实已经被人反映过.
PF0 还是其它某个GPIO 据说是内阻比较大.需要特殊设计.应该是个 bug.

一周热门 更多>

相关问题

    相关文章