你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32U3 评测】1. FDCAN高速通讯验证

[复制链接]
jundao721 发布时间:2026-5-25 15:58
收到板卡,已经迫不及待的等待功能测试。板卡上电如图1所示:
1-1.jpg
图1

从U3C5的datasheet上可以看出,是支持2路FDCAN的,截图如图2所示:
1-2.png
图2

原理图如图3所示:
1-3.png
图3

了解了其基本性能后,还是从STM32CubeMx 配置开始,首先配置时钟,如图4所示:
1-4.png
图4

配置FDCAN 引脚,如图5所示:
1-5.png
图5

配置FDCAN的Mode 和 Configuration,先配置为2Mbps,如图6所示:
1-6.png
图6

MCU最大支持96MHz,从时钟配置上可以清晰看到。FDCAN也是96MHz, 按照FDCAN的配置,配置通信速度为4Mbps,数值可以配置为整数。如果配置为5M,只能配置接近,所以通信速度暂时配置为4Mbps,作为测试速度,如图7:
1-7.png
图7

在VS Code中打开项目,需要增加一个FDCAN configure 函数,如下代码所示:
  1. /* Configure global filter:
  2.      Filter all remote frames with STD and EXT ID
  3.      Reject non matching frames with STD ID and EXT ID */
  4.   if (HAL_FDCAN_ConfigGlobalFilter(&hfdcan1, FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE) != HAL_OK)
  5.   {
  6.     Error_Handler();
  7.   }

  8.   /* Start the FDCAN module */
  9.   if (HAL_FDCAN_Start(&hfdcan1) != HAL_OK)
  10.   {
  11.     Error_Handler();
  12.   }

  13.   if (HAL_FDCAN_ActivateNotification(&hfdcan1, FDCAN_IT_RX_FIFO0_NEW_MESSAGE, 0) != HAL_OK)
  14.   {
  15.     Error_Handler();
  16.   }

  17.   /* Prepare Tx Header */
  18.   TxHeader.Identifier = 0x321;
  19.   TxHeader.IdType = FDCAN_STANDARD_ID;
  20.   TxHeader.TxFrameType = FDCAN_DATA_FRAME;
  21.   TxHeader.DataLength = FDCAN_DLC_BYTES_64;//FDCAN_DLC_BYTES_8;
  22.   TxHeader.ErrorStateIndicator = FDCAN_ESI_ACTIVE;
  23.   TxHeader.BitRateSwitch = FDCAN_BRS_ON;
  24.   TxHeader.FDFormat = FDCAN_FD_CAN;//FDCAN_CLASSIC_CAN;
  25.   TxHeader.TxEventFifoControl = FDCAN_NO_TX_EVENTS;
  26.   TxHeader.MessageMarker = 0;
复制代码

需要添加接收Callback 函数,如下代码所示:
  1. void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs)
  2. {
  3.   if ((RxFifo0ITs & FDCAN_IT_RX_FIFO0_NEW_MESSAGE) != 0U)
  4.   {
  5.     /* Retrieve Rx messages from RX FIFO0 */
  6.     if (HAL_FDCAN_GetRxMessage(hfdcan, FDCAN_RX_FIFO0, &RxHeader, RxData) != HAL_OK)
  7.     {
  8.       Error_Handler();
  9.     }
  10.   }
  11. }
复制代码

目标是每一秒发送一帧64字节的数据,接收来自于上位机终端发送的64字节数据。
上位机接收到数据如图8所示:
1-8.png
图8

MCU接收到RxBuf的数据如图9所示:
1-9.png
图9
从当前测试来看,收发数据正常,无数据丢失,满足初期测试要求。

收藏 评论0 发布时间:2026-5-25 15:58

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版