
我們以51單片機為例。51中一般針對串口通訊編程,通常采取中斷接受查詢發送的方式。中斷函數在接受數據到達時被重復調用,其實是個重復入棧的過程,所以不宜將函數寫的太長,函數太長一般會導致棧太深占用系統資源,二是處理時間過長,可能導致通訊出錯。為了防止在處理數據過程中不受干擾,通常在處理接受數據前關閉中斷,處理完后再開。通常的的編程方式如下:STaticvoidUartInterruptService(void)interrupt4{ES=0;RI=0;uart_process(SBUF);ES=1;}下面重點介紹數據處理函數uart_process(SBUF);其實很多時候,對于通訊傳輸的數據處理才是關鍵,尤其對于設計通訊協議而言。