初级会员

- 积分
- 51
- 金钱
- 51
- 注册时间
- 2021-8-25
- 在线时间
- 16 小时
|
本人新手,学了几天STM32F105,现在关于CAN部分有点困惑,请教各位大佬:
背景介绍:f105的双can进行类似于can中继的操作,can1收到的信号,由can2转发,can2收到的信号,由can1负责转发。
实现方式:目前can1用了fifo0以挂号中断的方式接受can数据,can2也是一样用fifo0挂号中断接受,两个中断主战优先级和次战优先级都是0。两路can的波特率均为500kbps。
测试结果:串联进can网络测试,间隔1ms给can1发10000帧,can2可以正常收到10000帧;给can2间隔1ms发10000帧数据,can1也可以正常收到全部的数据。然后两把同时发数据,也均可以收到数据。串联进实际的can网络,发现收发正常,整个网络正常工作。
现在有几点疑问:
1、stm32做中继,是否还需要添加循环缓冲区?虽然目前没有掉帧,但是如果后期主函数功能增加后,会不会导致出现收发掉帧?
2、比如网络上有200个ID,进入mcu后,我只想屏蔽1个ID,剩余199个ID全部转发,这种情况下,怎么设置过滤模式?
3、stm32有三个发送邮箱,发送邮箱是否可以自己选择?
4、目前只利用了接收邮箱的FIFO0,另外一个FIFO1不知道如何利用比较好?
以上问题请各位大佬帮忙解惑,万分谢谢。
|
|