yangbo18416
yangbo18416
这家伙很懒,什么也没写!

注册于 7年前

回答
6
文章
0
关注者
0

发布于7月前

H7内不带CANFD的驱动,需要参考其他芯片已经做好的驱动进行修改,可以参考bbsp\stm32\stm32mp157a-st-ev1\board\ports\drv_fdcan.c

发布于8月前

您好,初始化成功了么

发布于10月前

可以查看一下SConscript脚本文件有没有被注释掉

发布于1年前

screenshot_image.png

发布于1年前

问题已经得到解决了。在4.1.1的drv_can.c的339行处,代码有问题

  1. if (filter_cfg->items[i].hdr == -1)
  2. {
  3. /* use default filter bank settings */
  4. if (drv_can->name == "can1")
  5. {
  6. /* can1 banks 0~13 */
  7. drv_can->FilterConfig.FilterBank = i;
  8. }
  9. else if (drv_can->name == "can2")
  10. {
  11. /* can1 banks 14~27 */
  12. drv_can->FilterConfig.FilterBank = i + 14;
  13. }
  14. }
  15. else
  16. {
  17. /* use user-defined filter bank settings */
  18. drv_can->FilterConfig.FilterBank = filter_cfg->items[i].hdr;
  19. }

将这个部分修改为

  1. if (filter_cfg->items[i].hdr == -1)
  2. {
  3. /* use default filter bank settings */
  4. if(rt_memcmp(drv_can->name,"can1",sizeof("can1")) == 0)
  5. {
  6. /* can1 banks 0~13 */
  7. drv_can->FilterConfig.FilterBank = i;
  8. }
  9. else if(rt_memcmp(drv_can->name,"can2",sizeof("can2")) == 0)
  10. {
  11. /* can1 banks 14~27 */
  12. drv_can->FilterConfig.FilterBank = i + 14;
  13. }
  14. }
  15. else
  16. {
  17. /* use user-defined filter bank settings */
  18. drv_can->FilterConfig.FilterBank = filter_cfg->items[i].hdr;
  19. }

就可以了。
最新版中已经修改了这个问题了

发布于3年前

咨询下CAN硬件滤波能用么?刚刚接触这个库,使用例程跑不起来!会卡在canopen_recv_thread_entry函数内执行时间等待的循环内?这个怎么解决呢?

回到
顶部

发布
问题

投诉
建议