3个版本 (破坏性)
使用旧Rust 2015
0.3.0 | 2021年7月27日 |
---|---|
0.2.0 | 2021年3月30日 |
0.1.0 | 2019年3月10日 |
#958 在 硬件支持
每月30次下载
78KB
1.5K SLoC
MAX7301串行I/O扩展器驱动程序
用于Maxim MAX7301串行I/O扩展器芯片的纯Rust驱动程序,适用于嵌入式HAL。
描述
此驱动程序旨在在使用嵌入式HAL
特质库的嵌入式平台上运行。它是no_std
且不需要分配器。初始版本支持使用SPI接口的MAX7301。我希望(并且已经留下接口)扩展它以支持MAX7300,这是一个具有I2C接口的等效设备。
驱动程序允许三种不同的设备使用方式
- 一种“原始”接口,它公开了最小抽象的方法,这些方法直接映射到设备实现的操作,但不映射到
嵌入式HAL
特质, - 一种立即模式接口,它允许创建单独的、可拥有的
PortPin
实例,这些实例实现了InputPin
和OutputPin
特质,其中调用这些特质的任何方法都会立即启动总线事务以执行操作, - 一种事务性接口,它类似地允许创建
PortPin
实例,但HAL特质方法不会直接生成总线流量,而是与驱动程序内部写入缓存中的写入缓存交互。还有额外的控制写入缓存刷新或写入的方法,这些方法允许驱动程序利用设备的多个端口寄存器,在合理的情况下显著减少总线流量和延迟。
缺少的功能
- MAX7300变种的I2C接口。
- 用于使用设备的硬件转换检测和中断生成器的辅助方法。它可以启用和禁用,但这有点无意义,因为没有方法可以更改端口掩码,也没有方法在触发中断后清除它。
许可
许可为以下之一
- Apache License,版本2.0 (https://apache.ac.cn/licenses/LICENSE2.0)
- 麻省理工学院许可证(http://opensource.org/licenses/MIT)
任选。
贡献
除非你明确声明,否则根据Apache-2.0许可证定义的,你有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外的条款或条件。
依赖项
~195KB