本帖最后由 johnlin519 于 2011-9-15 20:09 编辑
我用STC11F04EX搭的一个比较简单的系统,单片机通过MAX232发送和接受。两个单片机互通,定时发送数据给对方(非应答方式)
调试一切正常,但是实际使用中,过几天,串口就不发送任何东西了(偶尔几台如此,有的则一直没问题),而单片机其他工作一切正常,包括可以接收数据,但是就是不发送。。但是定时终端正常。。而我也可以通过串口进行程序烧写,应该不是硬件问题。。
uchar xdata recbuf[30];
uchar xdata sendbuf[30];
void INIT_SERIAL()
{
SCON = 0x50;
PCON &= 0x7F;
TH1 = 0xFD;
TL1 = 0xFD;
TMOD &= 0x0F;
TMOD |= 0x20;
TR1 = 1;
IP &= 0xEF;
IE |= 0x10;
}
void InitInterrupt()
{
INIT_TIME0();
INIT_SERIAL();
AUXR=0;
EA=1;
}
void SERIAL_ROUTING() interrupt 4 using 3
{
uchar xdata strbuf[22];
uchar data i;
if(TI)
{
TI=0;
// sendcount++;
if(++sendcount>=sendmax)
{
sendmax=0;
sendcount=0;
}
else
{
SBUF=sendbuf[sendcount];
}
}
if(RI)
{
RI=0;
// 。。。处理
。。。
}
定时0 ,每3秒发送20个字节的数据,发送也采用中断方式。
我没方向了。。
} |