
STM32H755使用DMA接收数据不正常
CubeMX 生成的 STM32H7 CMake 工程打开串口 DMA 无法正常发送数据,如何解决?
STM32H7S78-DK 官方TOUCHGFX的DEMO源码在哪里呢?
STM32H723VG实现usb通讯
STM32H750VBT6挂接外部NAND Flash
STM32H7 openamp
如何利用TIM1触发HRTIM TIMA生成频率为20Hz的100ns脉冲波?
STM32双核H7核间通信的方法
stm32上部署yolo的问题
STM32H723VGT6的唯一DFSDM的时钟可以同时输出给2个sigma-delta吗?
过滤器部分,我不确定若配置为32位过滤器,是否可以兼顾标准帧和扩展帧,即如果收到的只是标准帧,标准ID通过过滤就OK了。这点你可以验证下。
不过,分别以16位和32位宽来配置滤波器肯定是可以的,16位滤波器过滤标准帧,32位过滤器过滤扩展帧,滤波器可以设置多个 。
我现在用的就是两个过滤器,但是只有过滤器0能用,这是我的配置
我分别设置了两个滤波器,只有滤波器0能用,滤波器1不起作用有可能是什么原因?
奇怪呀,你的代码中只看到FIFO1的配置,FIFO0的信息没看到。
理论上在 INIT 函数上都应该看到,然后至少两个过滤器配置给不同的 FIFO
sFilterConfig.IdType = FDCAN_EXTENDED_ID;
sFilterConfig.FilterIndex = 1;
sFilterConfig.FilterType = FDCAN_FILTER_DUAL;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
sFilterConfig.FilterID1 = 0x18010600;
sFilterConfig.FilterID2 = 0x18010600;
HAL_FDCAN_ConfigFilter(&hfdcan, &sFilterConfig);
或者
sFilterConfig.IdType = FDCAN_EXTENDED_ID;
sFilterConfig.FilterIndex = 1;
sFilterConfig.FilterType = FDCAN_FILTER_MASK;
sFilterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO1;
sFilterConfig.FilterID1 = 0x18010600;
sFilterConfig.FilterID2 = 0x1FFFFFFF;
HAL_FDCAN_ConfigFilter(&hfdcan, &sFilterConfig);
不过从你过滤配置来看,似乎也没啥问题。
我有两路CAN,用FIFO1接收的,处理函数在CAN2里
这样配置也能接收,但我需要接收0x581和0x18010600两帧
不知道为啥滤波器配置为0时不能用
我只是演示了下扩展帧的配置,标准帧配置还是那几类。
怀疑你是否代码方面有小问题,很多地方就一字之差,比方0啊1啊,别被这些小细节坑了。
[md]应该是没有问题的,因为单独接收标准帧或者扩展帧都可以接收到,两个一起就不行了
可以考虑接收所有的CAN数据,不需要单独过滤,通过判断接收的ID和CAN类型来做处理。
是这样吗,我这样试过也不行