Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CANFD_fdcan
ART PI 的FDCAN 终于调通了
发布于 2021-10-13 20:27:39 浏览:2045
订阅该版
[tocm] 作为一个RT-Thread的初学者,调试ARTIP FDCAN 遇到了麻烦。运行can_sample 程序一直死在 ```c size = rt_device_write(can_dev, 0, &msg, sizeof(msg)); ``` 这一句。 其中在论坛提问了许多次,一直没有解决,差不多要放弃了。 下班后想想,大家都讲可能是波特率不对,但是又不说如何修改? 问题可能是自己太相信原厂的代码了。 还是要从STM32CubeMX 的配置开始。于是看了一些裸机的例子。得到下面的结论 ## 第一步 FDCAN 的时钟源应该设置为80MHz,而不是400M,480M等等。我们要修改borad.c中system_clock_config 函数的内容,具体地改为 ```c RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 5; RCC_OscInitStruct.PLL.PLLN = 192; RCC_OscInitStruct.PLL.PLLP = 2; RCC_OscInitStruct.PLL.PLLQ = 12; RCC_OscInitStruct.PLL.PLLR = 2; RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2; RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE; RCC_OscInitStruct.PLL.PLLFRACN = 0; ``` 将PLLQ 设置为了80M,你可以将参数填写到STM32CubeMX中去验证一些 ## 第二步 要改写drv_fdcan.c 中的波特率定义: ```c { {CAN1MBaud, 1,8,63,16}, {CAN800kBaud, 10,8,20,4}, {CAN500kBaud, 2,8,63,16}, {CAN250kBaud, 20,8,35,4}, {CAN125kBaud, 40,8,35,4}, {CAN100kBaud, 40,8,44,5}, {CAN50kBaud, 80,8,44,5}, {CAN20kBaud, 200,8,44,5}, {CAN10kBaud, 400,8,44,5} }; ``` 在这里我仅仅修改了1M和500K的速率,其他没有改。 我参考了这位朋友的文章 - [STM32H750 更好用的CANFD 用例详解](https://blog.csdn.net/weifengdq/article/details/114000726) ## 第三步 can_sample.c 也需要修改,关键是设置波特率,没有接CAN 测试仪时,要做环路测试。另一方面,can_sample.c 结束时好像没有释放资源,下次进不去了。 ``` (obj != object) assertion failed at function:rt_object_init, line number:340 ``` 非得reset 总的来讲,原厂的代码要改善,如果要求使用者如此深入地修改代码,不利于推广。 无论如何,谢谢几位帮助我的朋友!
5
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
姚家湾
老码农
文章
2
回答
4
被采纳
0
关注TA
发私信
相关文章
1
ARTPi 的FDCAN使用官方工程如何发送数据?
2
STM32H750 FDCAN通信异常
3
ART-PI 的FDCAN功能使用
4
ART-PI FDCAN使用卡在rt_completion_wait处
5
ART PI FDCAN 死在rt_device_write
6
Art Pi FDCAN 到底能不能用呀?
7
CAN.c 与drv_fdcan.c兼容么?
8
出现这样的异常如何解决
9
能否有偿指导一下art-pi的hdcan使用
10
FDCAN报错 FDCAN报错
推荐文章
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组件
热门标签
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
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部