回覆列表
  • 1 # 使用者1951950446887

    寫程式就是寫邏輯,看你的表述,邏輯都已經很清晰了

    給你個思路吧

    假設 串列埠傳送程式是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

    注意: 這並非真實的程式碼,只是個大概的寫法邏輯

    接收方就不寫了

  • 中秋節和大豐收的關聯?
  • 哈姆雷特巧克力?