Confidential guide on numerology and astrology, based of GG33 Public information

MCP2515-RS
`#! [no_std]` Bibliothek für die Interaktion mit MCP2515 Can Controller Chips.
3 years
Works with Finder
1
Github Watches
12
Github Forks
21
Github Stars
MCP2515
#![no_std]
library for interacting with MCP2515 CAN controller chips.
Platform-agnostic, tested with arduino-hal
on ATmega2560.
Inspired by the following C++ libraries:
Cargo Features
All features are disabled by default.
-
defmt
- Implementsdefmt::Format
for most public types so they can be printed usingdefmt::info!()
and relatives -
ufmt
- Implementsufmt::uDebug
for most public types so they can be printed usingufmt::uwriteln!()
and relatives
Examples
Examples for some common microcontrollers are available in the examples/
folder.
-
Arduino Uno
- Easily adapted to other AVR-based boards
-
Raspberry Pi Pico
- Easily adapted to other RP2040-based boards
Usage
Import the relevant HAL crate for your platform. For this example I'm using
arduino-hal
on an ATmega2560.
#![no_std]
#![no_main]
use panic_halt as _;
use arduino_hal::{spi::Settings, Delay, Spi};
use embedded_can::{ExtendedId, Frame, Id};
use embedded_hal_bus::spi::ExclusiveDevice;
use mcp2515::{error::Error, frame::CanFrame, regs::OpMode, CanSpeed, McpSpeed, MCP2515};
#[arduino_hal::entry]
fn main() -> ! {
let dp = arduino_hal::Peripherals::take().unwrap();
let pins = arduino_hal::pins!(dp);
let mut delay = Delay::new();
let mut serial = arduino_hal::default_serial!(dp, pins, 115200);
ufmt::uwriteln!(&mut serial, "Hello, world!").unwrap();
let (spi, cs) = Spi::new(
dp.SPI,
pins.d13.into_output(),
pins.d11.into_output(),
pins.d12.into_pull_up_input(),
pins.d10.into_output(),
Settings {
data_order: arduino_hal::spi::DataOrder::MostSignificantFirst,
clock: arduino_hal::spi::SerialClockRate::OscfOver128,
mode: embedded_hal::spi::MODE_0,
},
);
let spi_device = ExclusiveDevice::new(spi, cs, Delay::new()).unwrap();
let mut can = MCP2515::new(spi_device);
can.init(
&mut delay,
mcp2515::Settings {
mode: OpMode::Loopback, // Loopback for testing and example
can_speed: CanSpeed::Kbps100, // Many options supported.
mcp_speed: McpSpeed::MHz8, // Currently 16MHz and 8MHz chips are supported.
clkout_en: false,
},
)
.unwrap();
loop {
// Send a message
let frame = CanFrame::new(
Id::Extended(ExtendedId::MAX),
&[0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08],
)
.unwrap();
can.send_message(frame).unwrap();
ufmt::uwriteln!(&mut serial, "Sent message!").unwrap();
// Read the message back (we are in loopback mode)
match can.read_message() {
Ok(frame) => ufmt::uwriteln!(&mut serial, "Received frame {:?}", frame).unwrap(),
Err(Error::NoMessage) => ufmt::uwriteln!(&mut serial, "No message to read!").unwrap(),
Err(_) => panic!("Oh no!"),
}
arduino_hal::delay_ms(1000);
}
}
Output over serial:
Sent message!
No message to read!
Sent message!
Received frame CanFrame { id: Extended(ExtendedId(536870911)), rtr: false, dlc: 8, data: [1, 2, 3, 4, 5, 6, 7, 8] }
Sent message!
Received frame CanFrame { id: Extended(ExtendedId(536870911)), rtr: false, dlc: 8, data: [1, 2, 3, 4, 5, 6, 7, 8] }
Sent message!
Received frame CanFrame { id: Extended(ExtendedId(536870911)), rtr: false, dlc: 8, data: [1, 2, 3, 4, 5, 6, 7, 8] }
License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE] or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT] or http://opensource.org/licenses/MIT)
at your option.
相关推荐
Converts Figma frames into front-end code for various mobile frameworks.
Advanced software engineer GPT that excels through nailing the basics.
Take an adjectivised noun, and create images making it progressively more adjective!
Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease
I find academic articles and books for research and literature reviews.
Entdecken Sie die umfassendste und aktuellste Sammlung von MCP-Servern auf dem Markt. Dieses Repository dient als zentraler Hub und bietet einen umfangreichen Katalog von Open-Source- und Proprietary MCP-Servern mit Funktionen, Dokumentationslinks und Mitwirkenden.
MCP -Server für den Fetch -Webseiteninhalt mit dem Headless -Browser von Dramatikern.
Ein leistungsstarkes Neovim -Plugin für die Verwaltung von MCP -Servern (Modellkontextprotokoll)
Brücke zwischen Ollama und MCP -Servern und ermöglicht es lokalen LLMs, Modellkontextprotokoll -Tools zu verwenden
🧑🚀 全世界最好的 llm 资料总结(数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Zusammenfassung der weltbesten LLM -Ressourcen.
Die All-in-One-Desktop & Docker-AI-Anwendung mit integriertem Lappen, AI-Agenten, No-Code-Agent Builder, MCP-Kompatibilität und vielem mehr.
Awesome MCP -Server - eine kuratierte Liste von Modellkontext -Protokollservern für Modellkontext
Reviews

user_R1wNiDQk
I've been using the mcp2515-rs library by davidcole1340 and I'm thoroughly impressed with its functionality and ease of use. This Rust-based crate offers a seamless interface for CAN bus communication, making it an essential tool for embedded systems developers. The comprehensive documentation on the provided GitHub page is extremely helpful, ensuring a smooth integration into any project. Highly recommended!