正常模式下,CAN1的發送中斷能出發,但是在斷點除錯中,裝完資料,進行到 TIR|=TMIDx_TXRQ 請求發送資料時。ESR暫存器報錯,LEC位顯示的值是0x03,經過查詢發現是ACK應答錯誤。
CAN回環模式下,不會報錯,發送和接收暫存器里都有資料。靜音模式非靜音模式也都試過。我覺得CAN的配置應該沒問題,因為是重構程式,老程式能正常運行,說明硬體不存在問題。
目前最懷疑是中斷出問題了。
之前copy老程式的SysTick滴答計時器也不能往下計數。但是又找不到問題所在,啟動檔案里也有同名的[weak]標志的函式名。我是剛入職的菜雞,希望大佬們出出注意。(CAN1 CAN2都一樣的問題)





uj5u.com熱心網友回復:
除錯,檢查SysTick中斷控制位是否有打開uj5u.com熱心網友回復:
是SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk嗎?
uj5u.com熱心網友回復:
剛剛試過,沒有作用。我現在是用TIM4普通定時器替代systick,串口中斷,DMA中斷,外部中斷都沒問題。
uj5u.com熱心網友回復:
除錯,檢查SysTick中斷控制位是否有打開
systick_handler,這個中斷進不了,我就用普通定時器替代的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241589.html
標籤:單片機/工控
上一篇:公司的網路結構看看有沒有什么問題
