周立功源代码解释
uint8 ModemCommand(char *Command)
{
uint8 i,err;
uint16 j;
OSSemPend(ModemSem, 0, &err);
GetAllChar();
if (ModemState == MODEM_CLOSE)
{
while(1)
{
while ((U1LSR & 0x00000001) != 0)
{
err = U1RBR;
}
ModemWrite("AT\r\n", 4);
i = ModemGetch();
j = 0;
while ( j <= 20 )
{
err = i;
i = ModemGetch();
if (err == 'O' || err == 'o')
if (i == 'K' || i == 'k')
{
i = ModemGetch();
i = ModemGetch();
break;
}
if( (i == 0) && (j == 3) )
{
j=20;
}
j++;
}
if(j >=20 )
{
continue;
}
else
break;
}
ModemWrite(Command, strlen(Command));
ModemWrite("\r\n", 2);
i = ModemGetch();
j=0;
while (1)
{
err = i;
i = ModemGetch();
if (err == 'O' || err == 'o')
if (i == 'K' || i == 'k')
{
i = ModemGetch();
i = ModemGetch();
break;
}
if(i == 0)
j++;
if(j >= 3 )
break;
}
GetAllChar();
}
OSSemPost(ModemSem);
return ModemState;
}
这段代码具体是什么意思,能不能每行注释一下,还有 ModemWrite的几个函数的解释,ModemWrite("AT\r\n", 4); ModemWrite("\r\n", 2); ModemWrite("ATD", 3);