串口试验的时候有一行执行不过去,各位帮忙看看呗
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);
出的问题,不知道怎么解决 找到问题所在了,必须先安装中断函数,再开中断(把21行放到12行的地方就行了)
可能是因为本身开机后串口就有数据,所以在这里会出错
具体等有经验的人来说明原因
页:
[1]