【精选】最新CubeMX配置CAN通讯教程,避免踩坑,附全套工程文件

您所在的位置:网站首页 can自发自收例程 【精选】最新CubeMX配置CAN通讯教程,避免踩坑,附全套工程文件

【精选】最新CubeMX配置CAN通讯教程,避免踩坑,附全套工程文件

2023-11-15 06:30| 来源: 网络整理| 查看: 265

这两天在学习CAN的过程中,踩过了无数的坑,各种莫名其妙的死机、发送接收无响应差点把我搞疯了,在网上查资料也很难查到针对自己问题的答案。星光不负赶路人,今天终于调好了,本着“人人为我,我为人人!”的精神,现在把过程记录下来,避免后来者踩坑。注意,本文非常合适“快餐式”熟悉CAN的同学们,比如赶着投胎并不想了解CAN通讯的,那恭喜你,为了更细致,篇幅可能有点长;如果你想详细了解CAN通讯,请出门右转。

先说一波,转载我的文章拿去卖钱的,生儿子没PY!!!!

前言

手里有不少板子跟教材,包括正点原子的、硬石科技的,首先非常感谢这些为嵌入式开荒的前辈们。历史惯例,先吹捧一波,再吐槽一波,针对新版HAL库的CAN通讯,他们教材里描述得还是不尽人意。

开始正文之前,先把我踩过的坑罗列一下,加深大家的印象。

踩坑一:

先说正点原子,用他们的HAL库例程调试,其实一点问题没有,但是他们的教材里面用的是非中断接收,我们具体来看他们的接收函数:

uint8_t CAN_Receive_Msg(uint8_t *buf) { uint32_t i; uint8_t RxData[8]; if(HAL_CAN_GetRxFifoFillLevel(&hcan, CAN_RX_FIFO0) != 1) { return 0xF1; } if(HAL_CAN_GetRxMessage(&hcan, CAN_RX_FIFO0, &RxHeader, RxData) != HAL_OK) { return 0xF2; } for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3