You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32 Nucleo F303开发板CAN总线无法发送消息问题求助

STM32 Nucleo F303开发板CAN总线无法发送消息问题求助

各位大佬,我现在彻底卡壳了!想用我的Nucleo F303开发板通过CAN总线发消息,结果死活没反应。我把示波器接在CAN_Tx引脚上,不管怎么调试,探头那边连点信号波动都测不到。我觉得硬件接线应该没毛病,但现在连配置对不对都没法验证——最气人的是,调用HAL_CAN_AddTxMessage()返回的居然是HAL_OK,可板子就是啥也不发!

我是把CAN_Tx接PA11、CAN_Rx接PA12的,这两个引脚现在完全没动静。以下是我写的CAN发送相关代码片段:

CAN_TxHeaderTypeDef   TxHeader;
uint8_t               TxData[8];
uint32_t              TxMailbox;

// 配置CAN消息头
TxHeader.StdId = 0x123;
TxHeader.RTR = CAN_RTR_DATA;
TxHeader.IDE = CAN_ID_STD;
TxHeader.DLC = 4;
TxHeader.TransmitGlobalTime = DISABLE;

// 准备要发送的数据
TxData[0] = 0xAA;
TxData[1] = 0xBB;
TxData[2] = 0xCC;
TxData[3] = 0xDD;

// 尝试发送CAN消息
if (HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox) != HAL_OK)
{
    Error_Handler();
}

我自己已经排查了这些点:

  • 反复检查PA11/PA12的接线,确认没接反、没松动,示波器探头也保证接触良好
  • 代码里已经调用HAL_CAN_Start(&hcan)启动了CAN外设
  • 波特率按照总线要求配的500kbps,应该是对的

有没有过来人能给我指个方向?比如是不是引脚复用功能没开对?CAN的时钟配置有没有坑?或者HAL库初始化的时候漏了什么关键步骤?

备注:内容来源于stack exchange,提问作者Scout Megyesi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:23:00