#serial #driver #module #transceiver #embedded-hal-driver #hc-12 #hc12

hc12-at

HC-12串行收发器模块的嵌入式HAL驱动程序

2个不稳定版本

0.2.0 2021年8月27日
0.1.0 2021年5月25日

#1640 in 硬件支持

自定义许可

50KB
1.5K SLoC

hc12

No Std

hc-12无线电收发器串行模块的驱动程序。

当SET引脚被拉低时,可以使用AT命令配置此模块。此驱动程序从嵌入式HAL中获取一个输出引脚、串行端口和延迟毫秒,并提供了与hc12模块交互的便利接口。

该驱动程序使用类型状态编程来区分hc12的操作状态:空闲、睡眠、配置。

数据手册:https://www.elecrow.com/download/HC-12.pdf

示例

let hc12 = Hc12::new(serial, set_pin, delay);
let mut hc12 = hc12.into_configuration_mode().debugless_unwrap();

let mut buffer = [0u8; 16];

let ok = hc12.is_ok();
assert!(ok);

let version = hc12.get_version(&mut buffer);
assert_eq!(version, b"VERSION-42\r\n");

let params = hc12.get_parameters().unwrap();
assert_eq!(
    Parameters {
        baud_rate: BaudRate::Bps115200,
        channel: Channel(42),
        power: TransmissionPower(1),
        mode: Mode::Fu2,
    },
    params
);

let mut hc12 = hc12.into_normal_mode().debugless_unwrap();

hc12.write_buffer(b"some data AT AT\r\n").unwrap();

let (mut serial, mut set_pin, _) = hc12.release();

(^: see hc12::test::usage_from_readme)

依赖项

~1.5MB
~39K SLoC