Crates.io | mcp2003a |
lib.rs | mcp2003a |
version | 0.0.17 |
source | src |
created_at | 2024-06-23 17:16:32.386601 |
updated_at | 2024-11-03 17:38:32.548714 |
description | MCP2003A LIN transceiver driver with embedded-hal traits for no-std environments. |
homepage | |
repository | https://github.com/zpg6/mcp2003a |
max_upload_size | |
id | 1281318 |
size | 24,692 |
Embedded Rust Microchip MCP2003A/B LIN transceiver driver with embedded-hal traits for no-std
environments.
[!WARNING] This crate is still in development and may not be suitable for production use.
Full Documentation: https://docs.rs/mcp2003a/latest/mcp2003a/
Tested on:
Should also work with:
Uses embedded-hal
digital traits for GPIO and embedded-hal-nb
Serial traits for UART.
embedded-hal = "1.0.0"
- Major breaking changes versus 0.2.x implementations.embedded-hal-nb = "1.0.0"
- Additional non-blocking traits using nb
crate underneath.Add the crate to your Cargo.toml
:
cargo add mcp2003a
let mut mcp2003a = Mcp2003a::new(uart2_driver, break_pin_driver, delay);
let lin_bus_config = LinBusConfig {
speed: LinBusSpeed::Baud19200,
break_duration: LinBreakDuration::Minimum13Bits, // Test for your application
wakeup_duration: LinWakeupDuration::Minimum250Microseconds, // Test for your application
read_device_response_timeout: LinReadDeviceResponseTimeout::DelayMilliseconds(2), // Test for your application
inter_frame_space: LinInterFrameSpace::DelayMilliseconds(1), // Test for your application
};
mcp2003a.init(lin_bus_config);
mcp2003a.send_wakeup();
mc2003a.send_frame(0x01, &[0x02, 0x03], 0x05).unwrap();
let mut read_buffer = [0u8; 11];
let len = mcp2003a.read_frame(0xC1, &mut read_buffer).unwrap();
(More coming soon)