因为can 的原因,差点让我放弃了RT-Thread 这是一个问题.

发布于 2021-01-20 17:41:04
 * can 配置流程:
 *    1. 从 https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/libraries/HAL_Drivers
 *       下载 drv_can.c 和 drv_can.h,并放到 drivers 文件夹中。
 *    2. 修改 drivers/stm32f4xx_hal_conf.h 文件,添加 #define HAL_CAN_MODULE_ENABLED,主要是为了导入 #include "stm32f4xx_hal_can.h"
 *    3. 修改 drivers/drv_can.c 文件,主要添加 #define BSP_USING_CAN 宏定义,可以选择添加 #define BSP_USING_CAN1 和 #define BSP_USING_CAN2
 *    4. 必须将 STM32CubeMX 生成项目中的 stm32f4xx_hal_msp.c 放到本项目的 drivers 目录中。放进去就好。

上面是我今天总结的 can 配置流程,关于 can 的发送和接受代码,就是根据 程序清单:这是一个 CAN 设备使用例程

但是程序启动就会报错

can dev write data failed!

大神们 帮我看看, 哦对了 另外 我的波特率是 CAN500kBaud

请把我当成一个菜鸟,因为我刚入行。

适应的芯片是 STm32F407Ve

查看更多

关注者
1
被浏览
529
biaotou
biaotou 2021-01-21

我觉得这个很大可能是CAN波特率配置有问题,可以看看这个:
https://club.rt-thread.org/ask/question/428949.html

5 个回答
张世争
张世争 2021-01-20

参考以下例程吧。

https://club.rt-thread.org/ask/article/2385.html

个人认为,用什么操作系统,都是一样。

aozima
aozima 2021-01-20
拒绝白嫖,拒绝键盘侠!

CAN网络至少要2个设备,波特率要相同,且其它设备要非静默模式,能回ACK,才能发出数据。
这块检查下,并接上逻辑分析仪,或CAN分析仪。

没有仪器,可以先从代码上分析下是在哪步返回了

mii
mii 2021-01-21

看楼主可能也不熟悉ST的CAN开发,建议先找个开发板把裸机工程测试一下,熟悉一下原理与寄存器配置。我相信这样经历后,你才会真的使用CAN。再转到RTT来,就是轻于易举的事。

夜航船
夜航船 2021-01-22

你好,请问你如何解决的,我也遇到相同问题。

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览