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

xclshwd 2020-08-30 09:43:41 2025
【海思应用篇】-(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);

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
xclshwd
红包 1 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
xclshwd
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区