你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
wh8 发表于 2019-4-19 12:02 应该是过滤器的标准帧ID要偏移5bit。然后你过滤掩码也有问题,需要过滤的位全部置为1,不需要的是0。比如我 ...
你若安好_清风徐来 发表于 2019-4-19 11:26 我有做两个CAN模块通信,没有做过CAN和其他模块通信 ,可以参考一下 我手上没有模块也不能测试uint8_t ...
15268851967@163 发表于 2019-5-6 18:57 楼主有用过FIFO1吗?我用FIFO1接收不到数据
查看全部评分
Your UAT Feedback is needed within today.
5.18活动板子会不会是STM32L4呢
STM32隐藏
STM32 CUBE软件中找不到STM32L4系列单片机
应用
AAA
测试标签23
标签选择失败
tiwen
BBBB
那个我后来修改了
FDCAN1_RXFilter.IdType=FDCAN_STANDARD_ID; //标准ID
FDCAN1_RXFilter.FilterIndex=0; //滤波器索引
FDCAN1_RXFilter.FilterType=FDCAN_FILTER_MASK; //滤波器类型
FDCAN1_RXFilter.FilterConfig=FDCAN_FILTER_TO_RXFIFO0; //过滤器0关联到FIFO0
FDCAN1_RXFilter.FilterID1=0xE1800000; //32位ID
FDCAN1_RXFilter.FilterID2=0xFFE00006; //如果FDCAN配置为传统模式的话,这里是32位掩码
if(HAL_FDCAN_ConfigFilter(&FDCAN1_Handler,&FDCAN1_RXFilter)!=HAL_OK) return 2;//滤波器初始化
HAL_FDCAN_ConfigGlobalFilter(&FDCAN1_Handler,0, 0, 1, 1);
HAL_FDCAN_Start(&FDCAN1_Handler); //开启FDCAN
HAL_FDCAN_ActivateNotification(&FDCAN1_Handler,FDCAN_IT_RX_FIFO0_NEW_MESSAGE,0);
return 0;
这个配置只能是不过滤把,不过滤程序是可以的
没有呀,因为最近用它做毕设,所以只是用了一部分功能,没有系统的学
应该放到 你配置完滤波初始化的后面 if(HAL_FDCAN_ConfigFilter(&FDCAN1_Handler,&FDCAN1_RXFilter)!=HAL_OK) return 2;//滤波器初始化
至少你要先把CAN的外设初始化完毕才能做其他配置 你在CAN外设初始化前面就开始调用全局滤波已定会失败的,因为CAN处于关闭状态
评分
查看全部评分
刚自己改好验证过的CAN滤波器设置代码:
对标准数据帧过滤
//CAN滤波器设置
void CAN_Filter_Set(void)
{
hcan.pTxMsg = &TxMessage;
hcan.pRxMsg = &RxMessage;
sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = (((uint32_t)CAN_ID<<21)&0xffff0000)>>16;
sFilterConfig.FilterIdLow = (((uint32_t)CAN_ID<<21)|CAN_ID_STD|CAN_RTR_DATA)&0xffff;
sFilterConfig.FilterMaskIdHigh = 0xFFFF;
sFilterConfig.FilterMaskIdLow = 0xFFFF;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.BankNumber = 14;
HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
}
其中 CAN_ID就是目标的CAN地址
评分
查看全部评分