新手第一次调CAN,引脚和时钟是用CubeMX配置并生成的代码,目的是为了调试两台无刷直流伺服电机,电机驱动器是通过CAN通讯的,板子用的是F429水星板,之前单调一台电机时没有用CAN接收中断,而是用了原子例程里的发送和接收函数,这两个函数放在自己建的CanTR.c文件中(除了CanTR.c文件和主函数里的相关代码是自己写的外,其他MX生成的代码未做过改动),主函数里先调用发送函数向驱动器发送指令,然后驱动器会回复,主函数循环中每循环一次就调用接收函数读一次,起先调一台电机的时候没有问题,调两台的时候就发现电机发回的数据读不全,有一台的读不到,于是想换用接收中断的方式,在callback函数里写了对接收到的数据解码的程序,但调试的时候发现总进不了中断,不知是什么原因,此外可能是因为固件库版本问题,在网上查的许多函数名在keil里编译时都识别不了,不是未定义就是说is invalid in c99,有些函数我在stm32f4xx_hal_can.h中找到了相应的替换掉了,但不知道是不是还缺少什么导致一直进不了中断,求好心人帮看一下,十分感谢!