跳至内容
Digi产品中文Wiki
无线模块/嵌入式核心板/片上系统/物联网解决方案
用户工具
注册
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
digi:arm-embedded:linux:del:del设备和接口:can-rtr
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====如何让CAN总线能收到远程帧==== DEL下可以正常接收远程帧。注意我们提供的CAN例程只是一个非常简单的示例以供参考,如果认真阅读can_test代码,你会看到有一行是接收包的过滤器: <code> rfilter.can_mask = (main_opts->extended) ? CAN_EFF_MASK : CAN_SFF_MASK </code> 这意味着can_test只接收匹配你ID的帧,其它默认会丢弃掉。远程帧并不匹配你原来的id,而是有一个0x40000000基数,比如你希望收到ID为1的远程帧,那你实际上收到的是ID 0x40000001。 如果您希望收到所有的包,那您需要把掩码全改为0。 <code> rfilter.can_mask = 0x00000000U; </code> 在can_test.c中按上述方法更改并重新编译,加载到文件系统执行时,当发送远程帧你会看到: <code> Running the test as RECEIVER [ INFO ] Testing with 1000 loops [ INFO ] Starting the thread for the ID 0x1 [ DEBUG ] Frame 1 with ID 0x40000001 received [ ERROR ] Different CAN-frames at loop 1 * EXPECTED: ID 0x001 | DLC 0x00 | DATA * RECEIVED: ID 0x40000001 | DLC 0x00 | DATA root@ccardimx28js:~# </code> 注意,系统预编译自带的can_test并不总是同Digi测试过的例程保持一致。如果您按上述方法没法得到想要的结果,请参考Digi用于接口功能测试的示例: {{:digi:embedded:linux:del:del设备和接口:can_test_v2.1.zip|can_test v2.1}}
digi/arm-embedded/linux/del/del设备和接口/can-rtr.txt
· 最后更改:
2018/11/26 13:52
由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部