请各位朋友来帮小弟看看这段代码

2019-03-24 15:32发布

代码如下:
/  UART初始化
void uartInit(void)
{
    SysCtlPeriEnable(SYSCTL_PERIPH_UART1);                  //  使能UART模块
    SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD);                  //  使能RX/TX所在的GPIO端口
    IntMasterEnable();
    GPIOPinTypeUART(GPIO_PORTD_BASE,                        //  配置RX/TX所在管脚为
                    GPIO_PIN_2 | GPIO_PIN_3);               //  UART收发功能

    UARTConfigSet(UART1_BASE,                               //  配置UART端口
                  9600,                                     //  波特率:115200
                  UART_CONFIG_WLEN_8 |                      //  数据位:8
                  UART_CONFIG_STOP_ONE |                    //  停止位:1
                  UART_CONFIG_PAR_NONE);                    //  校验位:无
   /* UARTFIFOLevelSet(UART0_BASE,       //   设置发送和接收FIFO深度
    UART_FIFO_TX4_8,      //   发送FIFO 为2/8深度(4B)
    UART_FIFO_RX1_8);      //   接收FIFO 为6/8深度(12B)*/
    UARTIntEnable(UART1_BASE,UART_INT_RX);
    IntEnable(INT_UART1);
    IntMasterEnable();
    UARTEnable(UART1_BASE);                                 //  使能UART端口
  
}



void UART1_ISR(void)
{
    unsigned long ulStatus;
    ulStatus=UARTIntStatus(UART1_BASE,true);     //   读取当前中断状态
    UARTIntClear(UART1_BASE,ulStatus);//   清除中断状态
    UARTCharPut(UART1_BASE,'Y');
   
   
   
   
  
}
   
//  主函数(程序入口)
int main(void)
{
    clockInit();                                      //  时钟初始化:晶振,6MHz
    SysCtlPeriEnable(LED_PERIPH);                           //  使能LED所在的GPIO端口
    GPIOPinTypeOut(LED_PORT, LED_PIN);                      //  设置LED所在管脚为输出
    uartInit();                                             //  UART初始化
    for(;;);
}

以上是我写的一段中断接收代码,我用串口调试助手给M3发数据,可是中断处理函数在触发执行一次后就不再触发了 尽管我接着给M3发送数据 可是中断就是触发不了 请大家帮小弟分析分析原因 小弟刚接触M3系列单片机 不胜感激 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
David_Lee
2019-03-25 16:23

原帖由 jinhailu2011 于 2011-10-19 14:01 发表 大侠,能不能介绍一下,你是如何注册中断的,我现在怀疑我的中断

 

不会是忘了在startup.s里注册了吧?

一周热门 更多>

相关问题

    相关文章