寫程式就是寫邏輯,看你的表述,邏輯都已經很清晰了
給你個思路吧
假設 串列埠傳送程式是Send(x),接收是 receive(),超時是 timeout
status SendFunction()
{
Send(x);
timeout = xxxx;
SendCnt = 5;
while(1)
if( timeout == 0 )
SendCnt --;
Send(x);
}
if( receive() == x )
return TRUE;
if(( SendCnt == 0 )&&(timeout == 0))return FALSE;
這個函式實現 串列埠傳送 ,如果接收不到則最多傳送5次,然後返回FALSE; 如果收到則退出此函式,返回TRUE
timeout是外部定時器處理的超時,此時間可依據接收方系統繁忙程度設定,假設傳送一個位元組是10ms,接收方最大的延時可能是8ms,則timeout 可以設定到20ms
注意: 這並非真實的程式碼,只是個大概的寫法邏輯
接收方就不寫了
寫程式就是寫邏輯,看你的表述,邏輯都已經很清晰了
給你個思路吧
假設 串列埠傳送程式是Send(x),接收是 receive(),超時是 timeout
status SendFunction()
{
Send(x);
timeout = xxxx;
SendCnt = 5;
while(1)
{
if( timeout == 0 )
{
SendCnt --;
Send(x);
timeout = xxxx;
}
if( receive() == x )
{
return TRUE;
}
if(( SendCnt == 0 )&&(timeout == 0))return FALSE;
}
}
這個函式實現 串列埠傳送 ,如果接收不到則最多傳送5次,然後返回FALSE; 如果收到則退出此函式,返回TRUE
timeout是外部定時器處理的超時,此時間可依據接收方系統繁忙程度設定,假設傳送一個位元組是10ms,接收方最大的延時可能是8ms,則timeout 可以設定到20ms
注意: 這並非真實的程式碼,只是個大概的寫法邏輯
接收方就不寫了