本帖最后由 Ainit 于 2025-6-4 22:11 编辑
STM32H723系列芯片同时使用CAN1和CAN3进行数据发送会出现异常,具体出现在当两组CAN均初始化打开时,通过CAN收发器只能接收到CAN3发送的数据,并且检查CAN1是正常初始化成功的。只是调用发送时无法正常发送。两路CAN都是设置成500K波特率,检查发现CAN发送时调用[C] 纯文本查看 复制代码 HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxFifoQ(FDCAN_HandleTypeDef *hfdcan, const FDCAN_TxHeaderTypeDef *pTxHeader,
const uint8_t *pTxData) 函数会一直进入[C] 纯文本查看 复制代码 /* Check that the Tx FIFO/Queue is not full */
if ((hfdcan->Instance->TXFQS & FDCAN_TXFQS_TFQF) != 0U)
{
/* Update error code */
hfdcan->ErrorCode |= HAL_FDCAN_ERROR_FIFO_FULL;
return HAL_ERROR;
} 具体情况还不清楚。继续排查。
网上看到一篇文章多路CAN公用相同的内存,里面说
Message Ram Offset (RAM消息地址偏移):范围0-2560,使用几个FDCAN就将2560平均分给几个,比如使用一个FDCAN1就填0,范围就是将RAM地消息0-2560分给FDCAN1。使用FDCAN1和FDCAN2,FDCAN1就填0,FDCAN2就填1280,FDCAN1范围就是0-1280,FDCAN2范围则是1281-2560。三个就以此类推。 不清楚是否是问题点。 |