#automotive #lin #no-std #linbus

no-std mcp2003a

MCP2003A LIN 收发器驱动程序,适用于无 std 环境的嵌入式-hal 特性

14 个版本

0.0.13 2024年7月6日
0.0.12 2024年7月6日
0.0.4 2024年6月24日

#257嵌入式开发

Download history 344/week @ 2024-06-22 190/week @ 2024-06-29 618/week @ 2024-07-06 23/week @ 2024-07-13 16/week @ 2024-07-27

每月 835 次下载

MIT 许可证

20KB
269

mcp2003a

嵌入式 Rust Microchip MCP2003A LIN 收发器驱动程序,适用于无 std 环境的 embedded-hal 特性。


Crates.io Documentation GitHub Repo

使用 embedded-hal 数字特性用于 GPIO 和 embedded-hal-nb 串行特性用于 UART。

  • embedded-hal = "1.0.0" - 与 0.2.x 实现相比有重大更改。
  • embedded-hal-nb = "1.0.0" - 使用 nb 仓库下的附加非阻塞特性。

⚠️ 进行中

完整文档:https://docs.rs/mcp2003a/latest/mcp2003a/

参考

用法

将包添加到您的 Cargo.toml

cargo add mcp2003a

配置如下

let lin_bus_config = LinBusConfig {
    speed: LinBusSpeed::Baud19200,
    break_duration: LinBreakDuration::Minimum13Bits,
    wakeup_duration: LinWakeupDuration::Minimum250Microseconds,
    read_device_response_timeout: LinReadDeviceResponseTimeout::DelayMilliseconds(2),
    inter_frame_space: LinInterFrameSpace::DelayMilliseconds(1),
};

let mut mcp2003a = Mcp2003a::new(
    uart2_driver,
    break_pin_driver,
    delay,
    lin_bus_config
);

mcp2003a.send_wakeup();

mcp2003a.send_frame(0x01, &[0x02, 0x03], 0x05).unwrap();

let mut read_buffer = [0u8; 11];
let len = mcp2003a.read_frame(0xC1, &mut read_buffer).unwrap();

完整示例

(即将推出)

  • ESP-32 via ESP-RS - 使用 ESP-RS HAL 在 ESP-32 微控制器上使用 MCP2003A 的示例。

依赖项

~85KB