我现在的串口收发数据的函数是: if((pPos > 30) || (Timer_Get() > 50)) { DisableInterrupts; for(i =0; i < pPos; i++) { gau8TxDataBuffer = gu8SCIData; }
gau8TxDataBuffer[pPos] = '\0'; gsTxPacket.u8DataLength = pPos+1; pPos = 0;
Timer_Reset();
if ((MCPSDataRequest(&gsTxPacket) == SUCCESS)) /* transmit data */ { gi8AppStatus = WAITING_FOR_ACK; MLMERXEnableRequest(&gsRxPacket, TIMEOUT_PERIOD); u16Count = 0; } gu8SCIDataFlag = 0;
EnableInterrupts;
} 还是不正常,不明白为什么发数据的时候会先发第一个字节,然后再发后面其它的,这样有时就会丢失第一个字节的数据?哪位高手指点一下啊?
[此贴子已经被作者于2006-10-13 14:35:19编辑过] |