最近在做can方面的要用到can2,调试了好久没有调通,一直是能发送数据不能正常接收,检查了滤波配置开始都没有发现问题,后面仔细看stm32的使用手册,最后发现在单独使用can2的时候必须开启can1的时钟,否则收不到数据,且过滤器也要设置从14开始,在stm32参考手册有这样一段话
双CAN
● CAN1:是主bxCAN,它负责管理在从bxCAN和512字节的SRAM存储器之间的通信
● CAN2:是从bxCAN,它不能直接访问SRAM存储器
● 这2个bxCAN模块共享512字节的SRAM存储器(见图195)
总结:1、在使用can2时必须要开启can1的时钟;2、若can1和can2同时使用时,先初始化can1驱动,再初始化can2