9个版本
| 0.2.0 | 2024年4月23日 |
|---|---|
| 0.1.0 | 2024年1月9日 |
| 0.1.0-rc.3 | 2023年12月14日 |
| 0.1.0-rc.2 | 2023年11月29日 |
| 0.1.0-alpha.1 | 2022年9月28日 |
#1665 in 嵌入式开发
14,386 每月下载量
用于 28 个crate (27 直接)
110KB
1.5K SLoC
嵌入式-hal-bus
嵌入式系统硬件抽象层(HAL) embedded-hal 的Bus共享实用工具。
embedded-hal 提供了SPI和I2C总线和设备的trait。本crate提供了兼容这些trait的硬件无关适配器,用于在多个设备间共享单个总线。
该项目由 HAL团队 开发和维护。
SPI
为了支持总线共享,embedded-hal 提供了 SpiBus 和 SpiDevice trait。 SpiBus 代表整个总线,而 SpiDevice 代表该总线上的设备。有关这些trait的更多详细信息,请参阅 embedded-hal 文档。
微控制器的 embedded-hal trait 实现应该实现 SpiBus trait。但是,设备驱动程序应该使用 SpiDevice trait,如果可能的话,不要使用 SpiBus trait,以便允许共享它们所连接的总线。
本crate提供了连接 SpiBus 和 SpiDevice 的机制。
I2C
在I2C的情况下,相同的I2c 嵌入式-hal特质可以代表整个总线或总线上的一台设备。此crate提供机制,可以从单个I2c实例中获取多个I2c实例,共享总线。
可选Cargo特性
std:启用使用std::sync::Mutex的共享总线实现,并为DeviceError实现std::error::Error。async:启用嵌入式-hal-async支持。defmt-03:从defmt0.3派生defmt::Format用于枚举和结构体。
最低支持Rust版本(MSRV)
本crate保证能在稳定版Rust 1.60及以上版本编译。它可能可以与较旧版本编译,但可能在任何新的补丁版本中发生变化。
有关如何升级MSRV的详细信息,请参阅此处。
启用async Cargo特性需要Rust 1.75或更高版本。
许可证
根据您的选择,许可如下:
- Apache License,版本2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在本工作中的任何贡献,都应按上述方式双重许可,而不添加任何其他条款或条件。
依赖项
~1MB
~19K SLoC