rust - 在 Raspberry Pi 中使用 gpio-cdev 和 Rust 将标志重置为正常
问题描述
因此,我使用gpio-cdev
Rust 中的库访问了 cdev 的行偏移量。我在上面请求了某些标志,最后,我想将它恢复正常。这是我写的代码
use gpio_cdev::{Chip, LineRequestFlags};
let chip = Chip::new("/dev/gpiochip0");
let line = chip.get_line(10).unwrap();
line
.request(
LineRequestFlags::OUTPUT,
0,
&format!("rpi-gpio-{}", self.line.offset()),
)
.unwrap();
现在,我想恢复正常
line
.request(
LineRequestFlags::empty(),
0,
"",
)
.unwrap();
解决方案
这实际上很棘手。我必须libc::close()
在句柄的原始文件描述符上使用,这需要使用 unsafe 块
libc::close(unsafe { line_handle.as_raw_fd() })
推荐阅读
- javascript - 对承诺感到困惑
- python - 在 python 上使用 selenium 控制的 Mozilla 从下拉列表中选择月份
- android - 如何使用自定义操作添加自定义编辑文本以单击光标?
- javascript - 如何在反应中隐藏重新渲染的字符串
- git - git rebase:传递多个策略选项
- jquery - 用于元素、ID 和样式的 jQuery 选择器
- python - Python vs Matlab 循环性能
- c# - 如何使用 mvvm 命令模式禁用/启用命令
- windows - 以管理员身份登录时无法运行 powershell 脚本
- sql - 是否可以在 where 子句之前执行 if else