Cortex-M3为什么无法进入中断?

2019-03-24 14:52发布

我用的M3S811,但不知道为什么进不了中断? 下面是我的程序: #include "lm3s811.h"
#include "m3io.h"
#include "driverlib/timer.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "inc/hw_memmap.h"
#include "inc/hw_ints.h"
#include "driverlib/interrupt.h"
void GPIO_Interrupt_Sever();
void Timer0ATimeoutIntHandler(); volatile unsigned long ulLoop;
main()
{
 SysCtlClockSet(SYSCTL_SYSDIV_4|SYSCTL_USE_PLL|SYSCTL_XTAL_6MHZ|SYSCTL_OSC_INT4);//设置主时钟PLL
 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD|SYSCTL_RCGC2_GPIOC);//使能GPIO
 GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,GPIO_PIN_5);//输出模式
 GPIOPinTypeGPIOOutputOD(GPIO_PORTD_BASE,GPIO_PIN_7);//开漏模式  IntMasterEnable();//使能全局中断
    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);//打开定时器
    TimerConfigure(TIMER1_BASE,TIMER_CFG_16_BIT_PAIR|TIMER_CFG_A_PERIODIC);//设置定时器工作方式
    TimerPrescaleSet(TIMER1_BASE,TIMER_A,0x007f);//设置分频
    TimerLoadSet(TIMER1_BASE,TIMER_A,0xffff);//装初值
    TimerIntEnable(TIMER1_BASE,TIMER_TIMA_TIMEOUT);//使能TIMER0A的溢出中断
    TimerIntRegister(TIMER1_BASE,TIMER_A,Timer0ATimeoutIntHandler);//将TIMER0A中断服务进程设置为void Timer0ATimeoutIntHandler(void)
    TimerEnable(TIMER1_BASE,TIMER_A);//打开定时器开始计时
    while(1)
    {
    }
}
void Timer0ATimeoutIntHandler(void)
{
    TimerIntClear(TIMER0_BASE,TIMER_TIMA_TIMEOUT);                //清除中断标志位
while(1)
{
        PC5_0;
  PD7_1;
        for(ulLoop = 0; ulLoop < 200000; ulLoop++)
        {
        }
        PC5_1;//输出高
  PD7_0;
        for(ulLoop = 0; ulLoop < 200000; ulLoop++)
        {
        }
} }
请各位大侠帮帮忙啊! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
youki12345
2019-03-26 17:41

原帖由 bruthroc 于 2011-9-30 11:01 发表 请问哪位大侠有写过M3中断的程序呀?小弟实在是不知怎么解决这个问题,想借鉴一下,看看我的程序是哪儿出错了。谢谢了!

 

interrupt_key_.rar (436.41 KB, 下载次数: 24) 2011-9-30 20:44 上传 点击文件名下载附件

 

 

给你的外部中断按键的例子,是外部中断  EXTI9_5,看看哈

一周热门 更多>

相关问题

    相关文章