-1
美好的一天全部STM32F746 CAN初始化超時
我一直在嘗試從STM32F407遷移到STM32F746。我遇到的問題是使用ST HAL庫來初始化CAN。該代碼是從MX Cube(4.16)生成的。使用Nucleo-144 STM32F746,我可以在調試期間(ST-Link)通過初始化代碼(MX_CAN1_Init()),但不能在調試中使用uLink Pro的生產系統上通過。它會超時等待CAN外設(MSR INAK位未被清除)。
CAN引腳未連接任何東西,即懸空。
CAN收發器通常將CAN Rx引腳驅動至正確的空閒電平。在這些線路上放置極性不正確的拉電阻會導致整個總線(已經這樣做)。最好不要使用任何拉電阻。 – Lundin
@Lundin具有上拉電阻不應對總線產生負面影響,因爲高電平是「隱性」。所以是的,CAN收發器應該正確地拉它,但是對於測試代碼,如果沒有必要連接CAN收發器,沒有拉上RXD引腳將導致CAN模塊不能初始化。我確實提到過我沒有連接收發器。 – Flip
如果您沒有CAN收發器,那麼通常無論如何都會以「回送」模式運行,即使信號甚至不能離開MCU。自從我意識到在開發階段擺弄這些東西只是有害的時代以來,我一直很年輕。儘可能早地獲得收發器和另一個節點,如CAN監聽適配器。與調試由於不在現場條件下進行測試而導致的特殊行爲相比,在修復方面沒有太多努力。如有可能,應儘量避免使用模擬器。 – Lundin