suolong123 发表于 2014-6-30 15:44:14

串口试验的时候有一行执行不过去,各位帮忙看看呗

void Uart0_Init(unsigned int baudrate)
{
        Led_On(1);
       
        rGPHCON &= ~(0xF0);                //复位串口0控制器
        rGPHCON |= (0xA0);                //设置串口为中断方式
        rGPHUP = 0x00;
        rULCON0 |= 0x03;                //8个数据位,1个停止位
        rUCON0 = 0x05;                        //发送和接收为查询模式
        rUBRDIV0 = (int)(PCLK/baudrate/16)-1;        //设置波特率
        rURXH0 = 0;                                //接收缓存清零
       
        Led_On(2);
        //开串口中断
        rINTMSK &= ~(1<<28);
        Led_On(3);
        rINTSUBMSK &= ~(0x03);
        Led_On(4);
       
        //安装中断函数
        pISR_UART0 = (unsigned int)Uart0_Isr;
}

串口初始化的时候,按照书上的方式写的,用Led调试的,但是LED4没有亮,放在LED3之后就能亮,感觉是
rINTSUBMSK &= ~(0x03);
出的问题,不知道怎么解决

suolong123 发表于 2014-6-30 15:59:41

找到问题所在了,必须先安装中断函数,再开中断(把21行放到12行的地方就行了)
可能是因为本身开机后串口就有数据,所以在这里会出错

具体等有经验的人来说明原因
页: [1]
查看完整版本: 串口试验的时候有一行执行不过去,各位帮忙看看呗