• 正文
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

為什么STM32H723 SPI6+BDMA組合,通信過程經(jīng)常報UDR和OVR錯誤中斷

2024/12/17
1917
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

最新回答

  • 這就看你程序邏輯了。UDR表示發(fā)生了underrun錯誤,發(fā)生在從模式的發(fā)送階段的發(fā)送FIFO為空時。

    確保在主機啟動時鐘之前,TxFIFO中已經(jīng)有足夠的數(shù)據(jù)。

    在TxFIFO為空時,不要清除UDR標志。確保在清除UDR標志之前,TxFIFO中已經(jīng)有數(shù)據(jù)。

    至于OVR錯誤,那就比較常見,發(fā)生在接收時前面數(shù)據(jù)沒取走又來新數(shù)據(jù)了。盡量保證數(shù)據(jù)提取的即使性。

    合理安排代碼中的中斷,不必要的中斷就別開了,比方DMA傳輸半完成中斷,中斷處理代碼力求簡潔。

  • 可以屏蔽其他代碼試試,或者固定和簡化通訊數(shù)據(jù)。

    看看是配置上的問題還是軟件架構上的問題。

相關推薦

電子產業(yè)圖譜