Orin Nano&NX GPIO教程 使用Orin Nano或Orin NX,在JetPack6系统上,控制GPIO的输入与输出 JetPack6 GPIO配置说明 1.获取GPIO口的寄存器地址 1.GPIO口位置图 2.PADCTL基地址与GPIO口偏移量 PADCTL_A0(PADCTL_G3) 0x02430000 PADCTL_A4(PADCTL_G4) 0x02434000 PADCTL_A16(PADCTL_EDP) 0x02440000 PADCTL_A24(PADCTL_G7) 0x02448000 7号 GPIO09 PADCTL_G7_SOC_GPIO59_0 0x30 gpio-492 PAC.06 0x02448030 15号 GPIO12 PADCTL_EDP_SOC_GPIO39_0 0x20 gpio-433 PN.01 0x02440020 29号 GPIO01 PADCTL_G3_SOC_GPIO32_0 0x68 gpio-453 PQ.05 0x02430068 31号 GPIO11 PADCTL_G3_SOC_GPIO33_0 0x70 gpio-454 PQ.06 0x02430070 32号 GPIO07 PADCTL_G4_SOC_GPIO19_0 0x80 gpio-389 PG.06 0x02434080 33号 GPIO13 PADCTL_G4_SOC_GPIO21_0 0x40 gpio-391 PH.00 0x02434040 3.(可选)参考官方教程 https://docs.nvidia.com/jetson/archives/r36.4.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonOrinNxNanoSeries.html#changing-the-pinmux   2.使用命令行控制GPIO 1.安装busybox与libgpiod2 sudo apt install busybox libgpiod2 2.获取寄存器地址与GPIO名称 以31号引脚为例,0x02430070为寄存器地址,PQ.06为GPIO名称 请通过上一节1.2 PADCTL基地址与GPIO口偏移量 查询具体值 3.设置GPIO为输入模式 上电默认为输入模式,也可以通过命令行再次设置为输入模式 sudo busybox devmem 0x02430070 w 0x58 获取GPIO当前状态,返回值1为高电平,0为低电平 gpioget $(gpiofind "PQ.06") 4.设置GPIO为输出模式 通过命令行设置为输出模式 sudo busybox devmem 0x02430070 w 0x0 设置GPIO输出,1为高电平,0为低电平 gpioset --mode=wait $(gpiofind "PQ.06")=1 JetPack5 GPIO配置说明 1.获取GPIO口的引脚名称与编号 1.GPIO口位置图 2.GPIO口的引脚名称与编号 7号 GPIO09 492 PAC.06 15号 GPIO12 433 PN.01 29号 GPIO01 453 PQ.05 31号 GPIO11 454 PQ.06 32号 GPIO07 389 PG.06 33号 GPIO13 391 PH.00   2.使用命令行控制GPIO 1.获取GPIO口的引脚名称与编号 以31号引脚为例,454为GPIO口编号,PQ.06为引脚名称 请通过上一节1.2 GPIO口的引脚名称与编号 2.提升至root权限,启用GPIO口 sudo bash echo 454 > /sys/class/gpio/export 2.设置GPIO为输入模式 echo in > /sys/class/gpio/PQ.06/direction 获取GPIO当前状态,返回值1为高电平,0为低电平 cat /sys/class/gpio/PQ.06/value 3.设置GPIO为输出模式 echo out > /sys/class/gpio/PQ.06/direction 设置GPIO输出,1为高电平,0为低电平 echo 1 > /sys/class/gpio/PQ.06/value