设备编程与数据集合:Rust 实践指南
1. 设备编程中的错误处理与 GPIO 操作
在设备编程中,我们可能会遇到错误。由于已经设置函数支持错误返回,我们可以使用 ? 调用 trait,让 Rust 解包 Result 或通过终止当前函数来处理错误。获取引脚的当前值后,可将其与先前值进行比较。以下是示例代码:
if val != prev_val {
println!("Button has been pushed with a value of {}", val);
prev_val = val;
}
为了短暂暂停,我们可以让程序休眠。这里选择暂停 10 毫秒,该值较为合理。若增加到 100 毫秒,可能会错过状态变化;若缩短到 1 毫秒,可能有些过度。当然,也可以不设置休眠,持续轮询 GPIO 引脚的值。
由于函数需要返回 Result ,闭包作为表达式保留,即不进行 Result 的解包,直接从函数返回。另外,由于 Rust 无法处理信号,可使用 Ctrl - C 中断程序,但这会使 GPIO 设备处于不干净的状态,下次运行程序时可能会收到关于 GPIO 设备状态的错误通知。
1.1 日志记录
日志记录在编写程序时非常重要。虽然可以自己编写日志文件,但已有标准化的日志记录方式,无需且不建议自己编写。
- Unix 类系统的 Syslog
超级会员免费看
订阅专栏 解锁全文
25

被折叠的 条评论
为什么被折叠?



