我的板子使用了 UART0 和 UART1,借鉴新唐官方提供的例程,这两个串口分别使用T3作为波特率发生器是都没有问题的,因为目前的这个方案同时使用了串口0和1,所以只能给串口1分配了T3为波特率发生器,串口0分配了T1作为波特率发生器,但是串口0说啥也不工作,初始化代码是官方例程提供的:
void Uart0_MyInit(u32 Baudrate)
{
SFRS = 0;
P07_INPUT_MODE;
P06_PUSHPULL_MODE;
SCON = 0x50; //UART0 Mode1,REN=1,TI=1
TMOD |= 0x20; //Timer1 Mode1
set_PCON_SMOD; //UART0 Double Rate Enable
set_CKCON_T1M;
clr_T3CON_BRCK; //Serial port 0 baud rate clock source = Timer1
TH1 = 256 - (24000000/16/Baudrate);
set_TCON_TR1;
set_IE_ES;
}
上面串口0的初始化代码,对方发来数据之后,根本不会引起接收中断,这是为什么呢? |