#communication #i2c #spi #type-safe #inter #cylinder #mcu-mpu

已撤回 嵌入式_cylinder

Cylinder 是一个为嵌入式 Rust 提供类型安全 MCU/MPU 通信(如 I2C、SPI 和 CAN)的库。

1.0.5 2023年4月28日
1.0.4 2023年4月27日

#5 in #inter

每月45次下载

自定义许可协议

7KB

Cylinder

Cylinder 是一个嵌入式 Rust 库,提供类型安全的 MCU/MPU 通信,支持 #![no_std]。我创建它是因为在没有类型安全的情况下处理复杂的 MCU 通信非常困难,但使用 Cylinder,您不必担心为命令、冲突和其他非类型安全通信问题定义独特的 u8 值。


目录

  1. 概述
  2. 跨二进制文件的使用
  3. 安装
  4. 示例
  5. 贡献

概述

Cylinder 通过提供在构建时运行的进程宏来允许类型安全通信,可以将该宏应用于枚举类型。例如

use embedded_cylinder::CylinerBuildU8;

#[derive(CylinerBuildU8)]
enum Test {
    MyEnum1,
    MyEnum2,
    MyEnum3,
    MyEnum4
}

在构建时,为枚举添加了一个实现,将枚举的每个变体映射到一个唯一的值。您可以像这样获取

let val : u8 = Test::get_u8(Test::MyEnum2);

跨二进制文件的使用

要跨多个二进制文件使用 Cylinder,您可以在包含您的类型接口的本地库中定义,然后将该库导入到您的二进制文件中。


示例

您可以在 Git 仓库的 examples/ 目录中找到示例


安装

您可以使用以下方式安装它

cargo add embedded_cylinder

贡献

如果您有任何改进库的想法,请创建一个 PR 或问题,我会很高兴审查它!

依赖关系

~1.5MB
~35K SLoC