You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson Nano使用C_DHT.c库驱动DHT11传感器报错求助

解决Jetson Nano使用C_DHT.c库驱动DHT11的GPIO报错问题

错误原因解析

  • gpioSetDirection: Unknown error 517:C_DHT依赖的wiringPi库未适配Jetson Nano的GPIO架构,Jetson的GPIO控制逻辑与树莓派不同,导致引脚方向设置失败。
  • gpioSetValue: Operation not permitted:普通用户无GPIO操作权限,即使库安装完成,也无法直接控制引脚电平。
  • TG(-39909.0, -39909.0, 0):GPIO操作失败导致无法与DHT11建立通信,输出的是读取失败时的默认无效值。

解决方案

方案1:改用Jetson官方GPIO库适配(推荐)

Jetson Nano官方提供的jetson-gpio库对原生GPIO支持更完善,需修改C_DHT.c的GPIO操作逻辑:

  1. 安装C语言版jetson-gpio库:
    git clone https://github.com/NVIDIA/jetson-gpio.git
    cd jetson-gpio/lib
    make
    sudo make install
    
  2. 替换C_DHT.c中的wiringPi相关函数:
    • 初始化GPIO:添加gpioSetMode(GPIO_MODE_USER);
    • 替换gpioSetDirection(pin, mode)为gpioSetDirection(pin, GPIO_OUT/GPIO_IN)
    • 替换gpioSetValue(pin, val)为gpioSetValue(pin, GPIO_HIGH/GPIO_LOW)
  3. 编译时链接jetson-gpio库:
    gcc C_DHT.c -o dht_reader -ljetson-gpio
    

方案2:修复wiringPi的适配与权限

若坚持使用wiringPi:

  1. 安装Jetson适配版wiringPi:
    git clone https://github.com/yogeshdhamija/Jetson-Nano-WiringPi.git
    cd Jetson-Nano-WiringPi
    ./build
    
  2. 必须以root权限运行程序:
    sudo ./your_dht_program
    
  3. 确认引脚编号正确:执行gpio readall查看Jetson Nano的wiringPi引脚映射,确保代码中使用的引脚编号与物理连接对应。

方案3:配置GPIO权限(无需每次sudo)

将当前用户加入GPIO用户组,避免每次运行都用sudo:

  1. 创建并添加用户到gpio组:
    sudo groupadd -f gpio
    sudo usermod -aG gpio $USER
    
  2. 设置GPIO设备文件权限:
    sudo chown root:gpio /dev/gpiochip*
    sudo chmod 660 /dev/gpiochip*
    
  3. 注销并重新登录,之后可直接运行程序。

验证

修改或重新编译后运行程序,若输出正常的温湿度数值,说明问题解决。

内容的提问来源于stack exchange,提问作者Thierry Grandjean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:35:25