6 个版本

0.1.5 2024年4月30日
0.1.4 2024年4月22日
0.1.1 2023年12月11日

#657 in 硬件支持

Download history 221/week @ 2024-04-26 22/week @ 2024-05-03 4/week @ 2024-05-10 13/week @ 2024-05-17 3/week @ 2024-05-24 3/week @ 2024-05-31 1/week @ 2024-06-07 1/week @ 2024-06-21

每月399次下载

GPL-3.0 许可协议

1MB
281 行代码

包含 (静态库, 1MB) c_lib/libcan2040.a

can2040-rust

这是 C 中的 can2040 的移植。基于此,我们可以使用 Rust 在 RP2040 上启用 CAN。

运行 CAN 示例

示例设备

接线

  • RP2040 GPIO 26 <=> CAN RX

  • RP2040 GPIO 27 <=> CAN TX

  • RP2040 GND <=> CAN GND

  • RP2040 3V3 <=> CAN 3V3

  • CAN CAN-H <=> USB CAN-H

  • CAN CAN-L <=> USB CAN-L

运行 can2040_demo

示例在 Linux 上运行,使用相对较低的波特率 10_000。调试后,您可以自行选择更高的波特率。

准备 USB

将 USB 插入您的计算机,并确保相应的端口已启用(这里对应端口 can0)。

sudo ip link set down can0 && \
sudo ip link set can0 type can bitrate 10000 && \
sudo ip link set up can0

然后,运行以下命令以监控 CAN 总线上的消息以进行调试

candump can0

在 RP2040 上运行 Can2040_demo。

确保所有接线正确,并且如果您调整了 GPIO,请确保代码中相应的 GPIO 也进行了调整。一切准备就绪后,您可以运行以下命令,应该会看到 RP2040 持续向 USB 发送 CAN 帧

cargo run --release --example can2040_demo

发送以测试接收

在您的计算机上运行以下命令,并确保 RP2040 控制台窗口接收信息

cansend can0 123#DEADBEEF12345678 

一些提示

  • 可以使用逻辑分析仪连接到 CAN-H / L 的差分模式以获取正确的 CAN 信号。连接方法是连接 CAN-H 到信号,CAN-L 到地。
  • 双通道示波器也可以连接到 CAN-H/L 以查看差分信号。
  • 不需要全局公共地。即使获得的信号受到干扰,SN65HVD230 也可以提取正常的 CAN 信号进行 TX/RX。

依赖关系

~11MB
~216K SLoC