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
:从defmt
0.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 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在本工作中的任何贡献,都应按上述方式双重许可,而不添加任何其他条款或条件。
依赖项
~1MB
~19K SLoC