CAN

使用RTT的设备驱动框架初始化CAN1失败

发布于 2020-03-18 20:43:38
硬件平台:STM32F405RTG6
软件平台:RTT-lts-3.1.3


大家好,最近在做RTT的CAN驱动和应用开发,用的是RTT官网推荐的CAN demo程序,程序配置如下:
1、board.h中,定义宏定义:
#define BSP_USING_CAN
#define BSP_USING_CAN1
#define BSP_USING_CAN2

2、在settings中,将设备驱动中的can打勾了,并确认在rtconfig.h中,定义宏定义:
#define RT_USING_CAN

3、从github下载了最新的drv_can.c和drv_can.h文件,并放在drivers目录下


4、用的是can1,在CAN初始化时,res = rt_device_open(can_dev, RT_DEVICE_FLAG_INT_TX | RT_DEVICE_FLAG_INT_RX);时,
res返回值为-1,代表失败。

请问各位,是我程序或设置上哪里出问题了吗?非常感谢!!!


查看更多

关注者
0
被浏览
402
4 个回答
还需要在cubemx中勾选can,以及检查can的时钟
三点水兽
三点水兽 2020-03-19
踩姑娘的小蘑菇 发表于 2020-3-18 23:49
还需要在cubemx中勾选can,以及检查can的时钟


谢谢您的解答,我现在用的是RTT的设备驱动框架,rt_device_find、rt_device_open、rt_device_write等函数,不是自己写HAL驱动,这样也需要用cudemx使能can,以及配置can时钟吗?如果必须用cudemx配置,那生成的代码怎么融入到can设备驱动框架中呢,谢谢了!!!
三点水兽
三点水兽 2020-03-19
哪位大神能帮忙看下此问题啊?谢谢了
ninja_rtt
ninja_rtt 2020-06-28
我这边也遇到同样的问题,CAN设备 device_init失败
dingzijie
dingzijie 2020-06-29
#define CANFESTIVAL_CAN_DEVICE_NAME "can1"//"bxcan1"
请确保 你们的名字是统一的

ENV配置完之后 只要统一一下名字就好,给的例子程序可以用。
ccxzjz
ccxzjz 2020-06-30
finsh上查一下 can设备有没有注册成功
guanxionghui
guanxionghui 2020-07-30

你好 我用stmf4也碰到这问题,你后面解决了吗?如何解决

撰写答案

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

发布
问题

分享
好友