最近在调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
几个月前做着还可以,,,今天怎么不行了??
此帖出自
小平头技术问答
仔细检查 startup.s 里边是否对应了 ISR.
另外,可以尝试用软件触发中断试试,看能不能进去.
PF0 还是其它某个GPIO 据说是内阻比较大.需要特殊设计.应该是个 bug.
一周热门 更多>