野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1198|回复: 1

STM32H743IIT6 繁星电机板 FDCAN通信不能接收

[复制链接]
发表于 2023-5-30 20:50:02 | 显示全部楼层 |阅读模式
static void CAN_Mode_Config(void)  //以下为修改部分

  hfdcan.Init.AutoRetransmission = DISABLE;//自动重发关闭
  hfdcan.Init.TransmitPause = DISABLE;
  hfdcan.Init.ProtocolException = DISABLE;//异常处理关闭
hfdcan.Init.MessageRAMOffset = 0;
  hfdcan.Init.StdFiltersNbr = 1;
  hfdcan.Init.ExtFiltersNbr = 1;
       
  hfdcan.Init.RxFifo0ElmtsNbr = 1;
  hfdcan.Init.RxFifo0ElmtSize = FDCAN_DATA_BYTES_8;
  hfdcan.Init.RxFifo1ElmtsNbr =2;
  hfdcan.Init.RxFifo1ElmtSize = FDCAN_DATA_BYTES_8;
  hfdcan.Init.RxBuffersNbr = 2;
  hfdcan.Init.RxBufferSize = FDCAN_DATA_BYTES_8;
       
  hfdcan.Init.TxEventsNbr = 2;
  hfdcan.Init.TxBuffersNbr = 1;
  hfdcan.Init.TxFifoQueueElmtsNbr = 2;
  hfdcan.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;
  hfdcan.Init.TxElmtSize = FDCAN_DATA_BYTES_8;
  HAL_FDCAN_Init(&hfdcan);

static void CAN_Filter_Config(void)   //滤波器配置

sFilterConfig.IdType = FDCAN_STANDARD_ID;//标准id
  sFilterConfig.FilterIndex = 0;
  sFilterConfig.FilterType = FDCAN_FILTER_MASK;//掩码模式
  sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXBUFFER;//关联到专用rxbuffer
  sFilterConfig.FilterID1 = 0x001;//地址为0x001;
  sFilterConfig.FilterID2 = 0x000;
  sFilterConfig.RxBufferIndex = 0;
  HAL_FDCAN_ConfigFilter(&hfdcan, &sFilterConfig);
/***********************************************************/
在进行调试后,发现不能接收到CAN分析仪的数据,单步调试发现是

uint32_t HAL_FDCAN_IsRxBufferMessageAvailable(FDCAN_HandleTypeDef *hfdcan, uint32_t RxBufferIndex)
这个函数中的
  uint32_t NewData1 = hfdcan->Instance->NDAT1;
  uint32_t NewData2 = hfdcan->Instance->NDAT2;
两个新标志位没有置1
导致不能接收数据

但是不知道哪里出错了,请各位指点指点。





回复

使用道具 举报

 楼主| 发表于 2023-5-31 16:50:00 | 显示全部楼层
官方的里程也和开发指南对不上
野火论坛202305311648482304..png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-24 19:00 , Processed in 0.038619 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表