Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CAN总线
用stm32F103测试CAN例程,始终发送失败 求助!!!
发布于 2020-08-03 09:58:36 浏览:2511
订阅该版
单片机用的是STM32F103CBT6 RTT版本是lts-v3.1.4 将BSP里的CAN驱动.c和.h加入到工程 开启宏定义#define BSP_USING_CAN #define BSP_USING_CAN1 CubeMX生成的HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)函数加入到board.c 板子通过CAN盒连接到电脑,用CANtest接收 修改CAN例程为周期发送,后附代码 问题:控制台通过list_device可以看到CAN1已经注册,运行例程始终发送失败, \ | / - RT - Thread Operating System / | \ 3.1.4 build Jul 31 2020 2006 - 2019 Copyright by rt-thread team [D/main] Hello RT-Thread! msh >list_device device type ref count ------ -------------------- ---------- can1 CAN Device 0 uart2 Character Device 2 pin Miscellaneous Device 0 msh >can_sample can dev write data failed! can dev write data failed! can dev write data failed! can dev write data failed! can dev write data failed! can dev write data failed! can dev write data failed! #include
#include "rtdevice.h" #define CAN_DEV_NAME "can1" /* CAN 设备名称 */ static rt_device_t can_dev; /* CAN 设备句柄 */ int can_sample(int argc, char *argv[]) { struct rt_can_msg msg = {0}; rt_err_t res; rt_size_t size; can_dev = rt_device_find(CAN_DEV_NAME); if (!can_dev) { rt_kprintf("find %s failed!\n", CAN_DEV_NAME); return RT_ERROR; } /* 以中断接收及发送方式打开CAN设备 */ res = rt_device_open(can_dev, RT_DEVICE_FLAG_INT_TX | RT_DEVICE_FLAG_INT_RX); RT_ASSERT(res == RT_EOK); rt_device_control(can_dev, RT_CAN_CMD_SET_MODE, (void *)RT_CAN_MODE_NORMAL); rt_device_control(can_dev, RT_CAN_CMD_SET_BAUD,(void *)CAN250kBaud); msg.id = 0x78; /* ID为0x78 */ msg.ide = RT_CAN_STDID; /* 标准格式 */ msg.rtr = RT_CAN_DTR; /* 数据帧 */ msg.len = 8; /* 数据长度为8 */ /* 待发送的8字节数据 */ msg.data[0] = 0x00; msg.data[1] = 0x11; msg.data[2] = 0x22; msg.data[3] = 0x33; msg.data[4] = 0x44; msg.data[5] = 0x55; msg.data[6] = 0x66; msg.data[7] = 0x77; /* 发送一帧CAN数据 */ while(1){ size = rt_device_write(can_dev, 0, &msg, sizeof(msg)); if (size == 0) { rt_kprintf("can dev write data failed!\n"); } rt_thread_mdelay(1000); } return res; } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(can_sample, can device sample);
查看更多
china_tianshi
2020-08-12
这家伙很懒,什么也没写!
已经解决。 之前将CubeMX生成的HAL_CAN_MspInit(CAN_HandleTypeDef* hcan)函数加入到board.c里不好用,应该是没有调用到这个函数,调用的是HAL库里的__weak void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan) { /* Prevent unused argument(s) compilation warning */ UNUSED(hcan); /* NOTE : This function Should not be modified, when the callback is needed, the HAL_CAN_MspInit could be implemented in the user file */ } 解决办法是将CubeMX生成工程内的stm32f1xx_hal_msp.c文件复制到RTT工程的drivers文件夹下,将其他不用的函数删掉 将包含文件的main.h改为board.h
2
个回答
默认排序
按发布时间排序
Ricky_Zhang
2020-08-26
这家伙很懒,什么也没写!
我现在也在调试CAN程序,使用回环模式发送接收成功,但是正常发送模式一直长度一直是0,看现象和这个很类似,能否指导一下?
撰写答案
登录
注册新账号
关注者
0
被浏览
2.5k
关于作者
china_tianshi
这家伙很懒,什么也没写!
提问
2
回答
1
被采纳
1
关注TA
发私信
相关问题
1
我也来传一个CANOpen移植,RTT+STM32F107+CanOpenNode
2
谁有STM32裸跑的CANopen程序啊???
3
CAN驱动程序框架
4
CAN驱动接口如何规范一下
5
RTT无法进入线程.Cannot access Memory
6
编译提示arm-none-eabi/bin/ld: cannot find crt0.o: No such file o
7
rtt 2.1.0 正式版 mdk4 bsp/stm32 编译canapp.c错误
8
STM32F10XCAN驱动使用的问题
9
2.1版本stm32f10x分支bxcan驱动波特率设置的bug
10
rtthread2.1.0下,找不到can1设备
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
16
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
6
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部