GD32F30x CAN1接收不到数据和发送不了扩展帧的问题记录
GD32F30x CAN1接收不到数据和发送不了扩展帧的问题记录
·
最近在使用GD32F305片子调试CAN,遇到了一些坑,在此记录一下。
主要问题有两个:
一、我只使用CAN1,配置没有问题,但是CAN1接收不到数据。
原因是:要把CAN0的时钟也打开!!
rcu_periph_clock_enable(RCU_CAN0);
rcu_periph_clock_enable(RCU_CAN1);
我是上网搜索才发现也有人遇到了一样的问题,不敢想要是没有搜到那个回答,我还要调多久,这得是多发散的思维才能想到啊!手册里面也没有写!好坑!!
二、我的目标是发送扩展帧,但是发出去的却是标准帧
原因:官方的文件错误❌

can_message_transmit函数中,设置扩展帧的位是bit2,原来的文件是没有左移2位的,所以导致设置扩展帧失败,我在这里左移2位后就能发送扩展帧了。这个可以通过查看设计手册发现。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)