-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