跳转到主要内容

四、GPIO控制

Jetson Orin Nano系列的40PIN GPIO引脚定义如下:Jetson_Orin_Nano_Expansion_Header_J12_Pinout.jpeg

一、

在jetpack 5系统控制GPIO

1 使用命令行控制GPIO

1.1获取GPIO口的引脚名称与编号

以31号引脚为例,454为GPIO口编号,PQ.06为引脚名称

请通过上一节1.12 GPIO口的引脚名称与编号

1.2提升至root权限,启用GPIO口
jetson@ubuntu:~$sudo sudobash

echo 454 > /sys/class/gpio/export
1.3设置GPIO为输入模式
echo in > /sys/class/gpio/PQ.06/direction

获取GPIO当前状态,返回值1为高电平,0为低电平

cat /sys/class/gpio/PQ.06/value
1.4设置GPIO为输出模式
echo out > /sys/class/gpio/PQ.06/direction

设置GPIO输出,1为高电平,0为低电平

echo 1 > /sys/class/gpio/PQ.06/value

您也可以使用以下脚本进行测试

#!/bin/bash
echo "setting GPIO PQ.06"
echo PQ.06 > /sys/class/gpio/export 2>/dev/null

# set Pin as output mode
echo out > /sys/class/gpio/PQ.06/direction

# blink
while true
do
    echo 0 > /sys/class/gpio/PQ.06/value
    sleep 0.5
    cat /sys/kernel/debug/gpioclass/gpio/PQ.06/value
    gpiochip1:sleep GPIOs0.5
    316-347,echo parent:1 platform/c2f0000.gpio,> tegra234-gpio-aon:/sys/class/gpio/PQ.06/value
    gpio-316sleep (PAA.000.5
    cat /sys/class/gpio/PQ.06/value
    sleep 0.5
done

2. 使用python控制GPIO

import time
import RPi.GPIO as GPIO

# define pin number
output_pin = 31

# set pin as BOARD mode
GPIO.setmode(GPIO.BOARD)

# set pin mode
GPIO.setup(output_pin, GPIO.OUT)

print("Press CTRL+C to exit")
gpio-317curr_value (PAA.01= GPIO.HIGH
try:
    while True:
        time.sleep(1)
        print("pin {} now is {}".format(output_pin, curr_value))
        gpio-318GPIO.output(output_pin, (PAA.02curr_value)
        )# gpio-319blink
        (PAA.03curr_value )^= gpio-320GPIO.HIGH
(PAA.04finally:
    )
 gpio-321 (PAA.05              |fixed-regulators:reg) out hi 
 gpio-322 (PAA.06              )
 gpio-323 (PAA.07              )
 gpio-324 (PBB.00              )
 gpio-325 (PBB.01              )
 gpio-326 (PBB.02              )
 gpio-327 (PBB.03              GPIO.cleanup()


2.在jetpack 6系统控制GPIO