求学问路 发表于 2024-1-22 16:27

STM32F105 CAN2不能接收,打赏100RMB

本帖最后由 求学问路 于 2024-1-24 16:34 编辑


用两年前的项目设置可以实现CAN1,CAN2同时收发了,感谢

1、采用STM32F105RBT6芯片 ,
2、使用CubeMX生成的库函数,
3、使用2路CAN,CAN1 收发正常, CAN2只能发不能进入接收中断

先初始化CAN1, 再初始化CAN2,滤波器编号从14开始,目前不能解决问题





求学问路 发表于 2024-1-22 16:49

这里发帖人气少

jobszheng 发表于 2024-1-23 10:07

还真没有接触过这个型号的芯片

求学问路 发表于 2024-1-23 11:31

想起2年前已经暂停开发的一个项目,刚好用到双路CAN,拿来试一下竟然两路CAN都能收发........

DNF557 发表于 2024-1-23 13:07

CAN2中断开了吗?我有时候就会复制过来忘记改CAN2

储小勇_526 发表于 2024-1-23 13:13

CAN1使用FIFO0,CAN2使用FIFO1。

ningling_21 发表于 2024-1-23 15:56

本帖最后由 ningling_21 于 2024-1-23 15:59 编辑

用标准库试试呢,之前用过这款芯片,标准库双路CAN 收发都没问题

sxgl 发表于 2024-1-24 09:27

本帖最后由 sxgl 于 2024-1-24 09:33 编辑

1、用示波器测量信号是否到达管脚,因为是接收,与CAN收发器有关联。2、把CAN过滤器设置为所有数据帧都可以接收,避免过滤器设置错误。

3、看看中断有没有设置对。中断设置建议用cubemx,这样不容易设置错。st的中断设置有好几步,最后不要忘了 enable 中断。
4、在keil debug时,可以查看CAN外设的寄存器值对不对,关键寄存器都对一下。
5、因为是接收问题,可以把接收的引脚设置为GPIO,看看能不能输出信号,判断管脚是否硬件损坏。

求学问路 发表于 2024-1-24 10:50

本帖最后由 求学问路 于 2024-1-24 10:58 编辑

sxgl 发表于 2024-1-24 09:27
1、用示波器测量信号是否到达管脚,因为是接收,与CAN收发器有关联。2、把CAN过滤器设置为所有数据帧都可以 ...
上传不了图片,只能繁琐打字。1、 2022年的一个项目直接仿真,CAN1, CAN2都能收发,说明硬件没问题。
2、 2022年7点22分生成的hex仿真没问题,但是can.c在8点05分修改,还没有编译生产新的hex, 一旦编译CAN2就无法接收,说明当天修改就有问题了,只是时间过得太久不记得修改哪里了。
还有其他事情处理,就没有仔细去检查



zwsam 发表于 2024-2-23 09:04

suncl110 发表于 2024-2-29 15:53

我有105的两路CAN程序,不过是全手写代码,不是工具生成的,如果需要的话,请留个话,并发我一下邮箱吧:suncl110@163.com

suncl110 发表于 2024-2-29 15:53

我有105的两路CAN程序,不过是全手写代码,不是工具生成的,如果需要的话,请留个话,并发我一下邮箱吧:suncl110@163.com
页: [1]
查看完整版本: STM32F105 CAN2不能接收,打赏100RMB