BK2421怎樣將MAX_RT狀態位清零?
芯片在發送一個ACK包的時候,如果重傳次數超過ARC,就會引起MAX_RT中斷。 只有TX FIFO中沒有數據包,才能徹底清除MAX_RT中斷。如果TX FIFO中有數據包,在清MAX_RT中斷后,系統又開始重傳FIFO里的最先壓入的一個數據包,直到傳輸成功或者重傳次數再次超過ARC。
如果想丟棄TX FIFO中的數據包,可以執行FLUSH TX FIFO 命令,把TX FIFO清空。
故清除MAX_RT需要依次執行如下步驟:
將TX FIFO清空(FLUSH TXFIFO);
清除MAX_RT標志位;
RX_DR和TX_DS中斷只要分別向其寫1就可清除。