你好:
在M3中有专门的滤波器的寄存器,可以设置可接受的消息帧,但我没有看到TMS570有可接受滤波器的设置寄存器,在HALCoGen中也没有看到有相关的设置,想问下“接收方设置的ID过滤是否允许你发送端的ID通过”这个是如何实现的,在HALCoGen中要如何配置??
谢谢
Jay:
你好,
ID过滤在Halcogen设置如下图所示。红框内配置的就是Mask(掩码)。
weibin chi:
回复 Jay:
Jay,你好
重新看了手册,对于ID过滤匹配不是很明白?比如CAN1的邮箱1为接受方,CAN1邮箱2为发送方,若Mask如为0x000007FF,那么要如何配置各自的ID才能让接收方设置的ID过滤允许发送端的ID通过呢??麻烦您具体解释下。
谢谢
Jay:
回复 weibin chi:
Mask中“1”对应的位是需要进行ID匹配的,所以Mask为0x000007FF,就是标准的11位ID匹配。
Mask中“0”对应的位是表示忽略该位的ID匹配,如果某个接收邮箱Mask为0x000007FE,且ID设置为3,那么这个邮箱实际可以收到ID为1和3的报文。
weibin chi:
回复 Jay:
Jay ,你好
根据你给的方法,我重新设置了接受ID,但是还是不能进入接受中断?
我加了回环模式后,也是不行?我把整个文件上传给你(如附件),能不能帮我看看具体是什么问题?
谢谢
Jay:
回复 weibin chi:
你的程序有几个问题:
1. 在CAN1中,你配置了两个邮箱,一个发送一个接收,但是发送和接收的ID是不一样的。所以,你要测试的是自发自收呢还是有其他的板子给1号邮箱发数据?
2. 你的程序里,都没有调用CAN的发送,所以问题还是和上面的一样,是自发自收还是其他板子发过来的。
3. 如果要用Loopback,你一定要自己发送,然后才会接收啊。所以,你要调用发送函数。
weibin chi:
回复 Jay:
Jay,你还
1、 我这个是用自发自收的。发送函数不是在实时中断函数中调用了么?
2、接受和发送ID是根据什么来配置的,还是符合接受滤波,就可以随意配置?
Ken Wang:
回复 weibin chi:
weibin,
关于CAN总线的功能调试,成功了吗?还有什么需要帮助的。
谢谢
Jay:
回复 weibin chi:
请参考附件例程。
发送的ID要和接收的I对上,接收邮箱才能收到。如果设置过滤,被过滤的位就无所谓。建议仔细看一下CAN协议。