首页 > 解决方案 > 在 Raspberry Pi 中使用 gpio-cdev 和 Rust 将标志重置为正常

问题描述

因此,我使用gpio-cdevRust 中的库访问了 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();

标签: rustraspberry-pigpio

解决方案


这实际上很棘手。我必须libc::close()在句柄的原始文件描述符上使用,这需要使用 unsafe 块

libc::close(unsafe { line_handle.as_raw_fd() })

推荐阅读