串口0连接到CH9121 转网口。想用串口0收发数据。出现两个奇怪问题:
1、当初始化串口0 ES=1,usb口就会出问题,无法识别。注释掉这句USB就正常通信。不知道问题在哪里。
2、还有按照下列发送程序发送,程序会卡在while出不来。TI好像一直不会置位。
void uart0_Send(unsigned char x)
{
SBUF = x;
while(TI==0)
{
;
}
TI = 0;
}
串口0连接到CH9121 转网口。想用串口0收发数据。出现两个奇怪问题:
1、当初始化串口0 ES=1,usb口就会出问题,无法识别。注释掉这句USB就正常通信。不知道问题在哪里。
2、还有按照下列发送程序发送,程序会卡在while出不来。TI好像一直不会置位。
void uart0_Send(unsigned char x)
{
SBUF = x;
while(TI==0)
{
;
}
TI = 0;
}
well setting ES=1 implies using uart0 in interrupt mode. I supose you dont have a interrupt handler for uart0.
Therefore the program will crash on the first serial event (TI or RI)
[code]
void uart0_irq(void) interrupt INT_NO_UART0
{
if(Ri)
{
RI=0;
....
}
if (TI)
{
TI=0;
....
}
}
[/code]