3个版本
0.1.2 | 2024年2月13日 |
---|---|
0.1.1 | 2024年2月13日 |
0.1.0 | 2024年2月11日 |
#657 in 硬件支持
26KB
548 行
多任务库(rs)
该包旨在存放可组合、可重用的各种传感器和硬件输出设备的驱动程序代码/封装。目前它不支持不同的STM32型号,仅支持STM32F4,但未来将会支持。
仓库结构
顶级
在 src
目录中的顶级模块是为可能需要驱动程序的设备的不同类别。目前只有一个 sensor
模块,但其他示例可以是 stepper_motor
、servo
、display
等。
二级
在顶级模块中,还有更具体的模块,但仍具有一定的通用性。例如,可以放入 sensor
模块中的模块有 barometer
、imu
、magnetometer
等。这些模块每个至少定义一个trait来定义所有子模块将遵循的行为。例如,在 barometer
模块中有一个 Barometer
trait,它定义了所有气压计使用的功能,例如读取压力、温度和确定海拔。
三级
在下一级嵌套中,我们有针对特定硬件的模块。例如,在 sensor::barometer::bmp180
中有一个专门针对BMP180气压传感器的模块。该模块实现了上面模块中定义的所有trait,因此在这种情况下,它会实现 Sensor
和 Barometer
trait。这允许具有极高的可预测性功能,并且在不修改任何代码的情况下(假设已经为新传感器编写了驱动程序)可以在物理传感器之间切换。
附加说明
当然,之前描述的一切都只是一个人(我自己)设定的初步指南。随着更多的人开始为这个包做出贡献,以及不同的子团队使用此代码为其项目服务,代码结构和指南将会(并且应该)发生变化。
要查看如何使用Rust编程STM32的工具链模板仓库,请参阅此链接
Blackpill 开发板特别说明
串行:
虽然该板子上确实包含USB端口,但我还没有能在Windows中将它枚举为USB设备。目前,将使用外部FTDI串行到UART桥接器进行USB通信。为了使其工作,时钟速率必须设置为25MHz。
依赖项
~54MB
~1.5M SLoC