加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

12/17 11:49
164
閱讀需 2 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

最新回答

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

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

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

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

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

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

    看看是配置上的問題還是軟件架構(gòu)上的問題。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜