7个版本 (破坏性)
0.6.0 | 2024年2月1日 |
---|---|
0.5.0 | 2023年1月31日 |
0.4.0 | 2022年2月19日 |
0.3.0 | 2020年5月4日 |
0.1.0 | 2018年8月15日 |
#1963 在 嵌入式开发
32KB
489 行
Rust DS1307实时时钟驱动程序
这是一个基于embedded-hal
traits的平台无关Rust驱动程序,用于DS1307实时时钟。
此驱动程序允许您
- 以12小时和24小时格式读取和设置日期和时间。参见:
datetime
- 启用和禁用实时时钟。参见:
set_running
- 读取和写入用户RAM。参见:
read_ram
- 控制方波输出。参见:
enable_square_wave_output
设备
DS1307串行实时时钟(RTC)是一款低功耗、全二进制编码十进制(BCD)时钟/日历,带有56字节的NV SRAM。地址和数据通过I2C双向总线串行传输。
时钟/日历提供秒、分、小时、日、日期、月份和年份信息。月底日期会自动调整,包括闰年的修正。时钟可以在24小时或12小时格式下运行,带有AM/PM指示器。
DS1307内置电源检测电路,可检测电源故障并自动切换到备用电源。在从备用电源运行时,时钟保持运行。
数据表:DS1307
用法
要使用此驱动程序,请导入此crate和embedded_hal
实现,然后实例化设备。
请在此仓库中查找使用硬件的额外示例: driver-examples
use ds1307::{DateTimeAccess, Ds1307, NaiveDate};
use linux_embedded_hal::I2cdev;
fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let mut rtc = Ds1307::new(dev);
let datetime = NaiveDate::from_ymd_opt(2022, 1, 2)
.unwrap()
.and_hms_opt(19, 59, 58)
.unwrap();
rtc.set_datetime(&datetime).unwrap();
// ...
let datetime = rtc.datetime().unwrap();
println!("{datetime}");
// This will print something like: 2022-01-02 19:59:58
}
最小支持Rust版本(MSRV)
此crate保证在稳定Rust 1.62及以上版本上编译。它可能与较旧版本编译,但这可能在任何新的补丁版本中改变。
支持
有关问题、问题、功能请求和其他更改,请在github项目中提交问题。
许可
许可方式为以下之一
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- 麻省理工学院许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。
贡献
除非你明确说明,否则根据Apache-2.0许可证的定义,你有意提交的任何贡献,旨在包含在作品中,将根据上述方式双许可,无需任何附加条款或条件。
依赖项
~1MB
~19K SLoC