首页 > 技术知识 > 正文

【海思应用篇】-(7)GPIO应用层示例二

我们知道每组gpio在/dev/下存在对应节点,我们也可以通过这个操作GPIO。

1.用户态操作

步骤 1 在控制台使用 echo 命令将要操作的 GPIO编号export

echo N > /sys/class/gpio/export

N 为要操作的 GPIO编号,该编号等于 GPIO组号 8 + 组内偏移号,例 如 GPIO4_2的编号为4 8 + 2 = 34 。

export 之后就会生成/sys/class/gpio/gpioN 目录

例如:exportGPIO4_2:

echo 34 > /sys/class/gpio/export

步骤 2 在控制台使用 echo 命令设置GPIO方向

对于输入 :echo in > /sys/class/gpio/gpioN/direction

对于输出 :echo out > /sys/class/gpio/gpioN/direction

例如:设置GPIO4_2 方向

− 对于输入 :echo in > /sys/class/gpio/gpio34/direction

− 对于输出 :echo out > /sys/class/gpio/gpio34/direction

GPIO方向 只有 out 和 in 两 种 。

可使用 cat命令 查 看 GPIO方向: cat /sys/class/gpio/gpioN/direction 例如 查 看 GPIO4_2 方向 : cat /sys/class/gpio/gpio34/direction

步骤 3 在控制台使用 cat或echo 命令查看 GPIO输入值或设 置GPIO输出值

查看输入值:cat /sys/class/gpio/gpioN/value

输出低:echo 0 > /sys/class/gpio/gpioN/value

输出高:echo 1 > /sys/class/gpio/gpioN/value

步骤 4 在控制台使用 echo 命令将操作的 GPIO编号unexport

echo N > /sys/class/gpio/unexport

2.内核态

步骤 1 注册 GPIO:gpio_request(gpio_num, NULL);

步骤 2 设 置GPIO方向

对于输入 :gpio_direction_input(gpio_num)

对于输出 :gpio_direction_output(gpio_num, gpio_out_val)

步骤 3 查看GPIO输入值或设 置GPIO输出值

查看输入值:gpio_get_value(gpio_num);

输出低:gpio_set_value(gpio_num, 0);

输出高:gpio_set_value(gpio_num, 1);

步骤 4 释放注册的 GPIO编号

gpio_free(gpio_num);

猜你喜欢