CAN

rtthread2.1.0下,找不到can1设备

发布于 2017-08-21 17:37:57
console里输出的是(candev) assertion failed at function:can_bus_hook_init, line number:109
调试跟踪发现是candev = rt_device_find("bxcan1");返回的是null,导致程序在RT_ASSERT(candev);里死循环
我的是F103RB,我跟踪了下can1 的地址设置是对的。

can1.PNG

查看更多

关注者
0
被浏览
1.4k
3 个回答
aozima
aozima 2017-08-21
拒绝白嫖,拒绝键盘侠!
你这里使用了自动初始化吗,你这个程序算是APP级别的了。
应该放到驱动初始化的后面去,同级的初始化可能是不能保证的。

建议先改为手动在CAN设备注册之后再启动你的APP。
wolf007
wolf007 2017-08-21
你这里使用了自动初始化吗,你这个程序算是APP级别的了。
应该放到驱动初始化的后面去,同级的初始化可能是不能保证的。

建议先改为手动在CAN设备注册之后再启动你的APP。


------
第一次学习rtthread,还不会手动注册can,上面是2.1.0版本的示例,编译后的bin文件运行起来后能去找can,但是最后找不到can,断点运行时发现总是用bxcan1和uart3~1匹配,所以找不到,返回null。感觉是can根本就没有注册过,所以找不到,我尝试过手动注册,但是还不会套路,能否再指点一下?方便的话,加下我qq:83474760,谢谢!

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览