//将需要发送的数据添加到待发送的数据缓冲区,所有数据实际上是再终端里面发送
void MW_Uart_Send_Data_Add(UART_PORT_TYPE ePort,u8int * buf,u16int Size)
{
u8int Len = 0;
//if((UART_0_TX_SIZE - sDrvUartInfo[ePort].u8TxBufDataSize) >= Size)
{剩余空间比要发送的数据大才会发送,否则丢弃要发送的数据
sDrvUartInfo[ePort].u8TxBufDataSize = sDrvUartInfo[ePort].u8TxBufDataSize + Size;更新剩余空间大小
while(Len < Size)
{
*sDrvUartInfo[ePort].pu8TxAdd = buf[Len];
if(sDrvUartInfo[ePort].pu8TxAdd < sDrvUartInfo[ePort].pu8TxMaxAddr)
{
sDrvUartInfo[ePort].pu8TxAdd ++;
}
else
{
sDrvUartInfo[ePort].pu8TxAdd = sDrvUartInfo[ePort].pu8TxMinAddr;
}
Len ++;
}
if(sDrvUartInfo[ePort].bTxIsStop)
{
sDrvUartInfo[ePort].bTxIsStop = FALSE;
Drv_Hardware_uart_SendByte(ePort,*sDrvUartInfo[ePort].pu8TxValid);
}
}
}
|