完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.按照官方的例程写完CAN的程序,没有配置硬件过滤表。测试发现每次发送两遍数据。中间隔的时间3ns。
2.用的AT32F407VGT7 /* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2024-03-20 YFZX1 the first version */ #include #include "rtdevice.h" #define CAN1_DEV_NAME "can1" rt_device_t can_dev; /*can 设备句柄*/ /*回调函数*/ static rt_err_t Can1_RX_Call(rt_device_t dev, rt_size_t size) { return RT_EOK; } /*主函数*/ void CanDevs_State_Update(void *parameter) { while(1) { rt_thread_delay(10); } } /*测试*/ void CAN_tset_Demo(int argc, char** argv) { struct rt_can_msg msg = {0}; rt_size_t size; 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 数据 */ size = rt_device_write(can_dev, 0, &msg, sizeof(msg)); if (size == 0) { rt_kprintf("can dev write data failed!\n"); } } MSH_CMD_EXPORT(CAN_tset_Demo, can sample); /*CAN线程初始化*/ int Can_thread_Init(void) { rt_thread_t thread; can_dev = rt_device_find(CAN1_DEV_NAME); if(!can_dev) { rt_kprintf("find %s failed!\r\n", CAN1_DEV_NAME); return RT_ERROR; } /* 设置CAN的打开方式为TX和RX*/ rt_device_open(can_dev, RT_DEVICE_FLAG_INT_TX | RT_DEVICE_FLAG_INT_RX); /* 设置CAN的工作速度为10K*/ rt_device_control(can_dev, RT_CAN_CMD_SET_BAUD, (void *)CAN10kBaud); /* 设置 CAN 的工作模式为正常工作模式 */ rt_device_control(can_dev, RT_CAN_CMD_SET_MODE, (void *)RT_CAN_MODE_NORMAL); /* 设置CAn的回调函数*/ rt_device_set_rx_indicate(can_dev, Can1_RX_Call); /* 创建CAN的线程*/ thread = rt_thread_create("can_thread", CanDevs_State_Update, RT_NULL, 1024, 10, 10); if(thread != RT_NULL) { rt_thread_startup(thread); } else { rt_kprintf("create can thread failed !\r\n"); } return 0; } |
|
相关推荐
1个回答
|
|
上逻辑分析仪看下吧,感觉像是硬件自动重发了。
|
|
|
|
只有小组成员才能发言,加入小组>>
152个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
864 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1193 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
847 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1151 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1140 浏览 0 评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
202浏览 3评论
STM32F407ZGT6 spi flash片选引脚无法被拉低的原因?怎么解决?
1185浏览 2评论
移植RT-THREAD在stm32开发板上,使用rt_kprintf不能正常打印的原因是什么?怎么解决?
508浏览 2评论
stm32f103zet用rtthread studio生成带finsh的项目程序,串口输入help没有反应是为什么?
512浏览 2评论
rtthread studio已经成功编写了外部flash下载算法,程序也能下载进去但是不能进行调试怎么办?
431浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 21:20 , Processed in 0.631197 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号