使用Teensy 4.0的双CAN通讯问题

问题描述 投票:0回答:1

我正在使用 Teensy 4.0 开发一个 arduino 项目。我正在尝试使用 FlexCanT4 库通过 Can1 和 Can2 设置两种不同的通信。对于它们,我将时钟设置为 60MHz。 如果我设置 Can1,然后 Can2 将时钟设置为 60MHz,则 Can1 停止工作,只有 Can2 保持活动状态。

所以,我想问,为什么会发生这种情况? Can 的时钟代表什么?如果我没有明确设置时钟的默认值是多少?

如果我仅设置 Can1 通信或仅设置 Can2 通信,则没有问题。另外,如果我不为他们两个设置时钟,没问题,一切正常。

这是设置代码:

#include <FlexCAN_T4.h>

FlexCAN_T4<CAN2, RX_SIZE_256, TX_SIZE_16> Can2;
FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> Can1;


void setup(){



Can1.begin();
Can1.setBaudRate(125000);
Can1.setClock(CLK_60MHz);
Can1.setMaxMB(60);
Can1.enableFIFO();
Can1.enableFIFOInterrupt();
Can1.onReceive(Can1Sniff);

Can2.begin();
Can2.setBaudRate(1000000);
Can2.setClock(CLK_60MHz);
Can2.setMaxMB(60);
Can2.enableFIFO();
Can2.enableFIFOInterrupt();
Can2.onReceive(Can2Sniff);

}
arduino clock can-bus teensy
1个回答
0
投票

尝试在比特率之前设置时钟

© www.soinside.com 2019 - 2024. All rights reserved.