• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

树莓派控制GPIO的原理是什么?如何一直检测这个状态

2079172847@qq.com 2018-03-31 浏览量:2369

一切皆文件,所以说对IO口的操作就是对对应文件的读取,这个文件读取是如何去读取的?

能不能详细的讲下!

我的目的是一个GPIO的引脚拉低之后,执行一个关机的脚本,c语言的。

没人指点,希望大神能帮忙解决下!

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • GPIO文件读写的API接口已经帮你写好了,函数可以直接复制黏贴

    https://gitee.com/SourcelinkS/Source-lib/blob/master/lib/src/sl_perpheral/sl_gpio.c

    先用export_gpio_pin函数往gpio目录的export文件输入引脚号,这样就启用了该引脚,函数输入量是引脚编号。

    再用set_gpio_direction函数设置引脚号对应文件夹下的direction文件,设置引脚是输入还是输出,默认是输入的

    然后用get_gpio_value函数读取引脚号对应文件夹下的value文件

    不用谢我,谢SourceLink吧,这部分代码是他写的。

      

    关机的shell命令可以在c语言里这样使用:
    system("bash halt");
    • 发布于 2018-03-31
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了 : 回复

其他答案 数量:8
  • 文件读取其实就是一种内存地址映射操作,这个文件可以影响到GPIO的地址。关机可以用system("shutdown -h now");语句。

    • 发布于2018-03-31
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :SN74HC374NSR是贴片的,插件的话就是另外一个型号了,SN74HC374N型号是插件的 回复

  • 可以用python实现 方便初学者
    • 发布于2018-04-01
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :SPMWH1228FD5WAR0S3 Samsung Semiconductor, Inc. 请参考。 回复

  • 和单片机控制IO的原理是一样的,只是他分装成了更通用的函数而已。
    • 发布于2018-04-01
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :PESD5V0S1UA/ZL115物料已经停产时间较久,原厂没有相关信息。确认不了具体含义。 回复

  • 树莓派的GPIO操作一般都是由库进行的,因为并没有树莓派的CPU的数据手册,是不可能通过C语言的寄存器操作来进行控制的。
    而使用库,使用最多的就是python了,其本质上还是再通过调用C语言的函数来实现GPIO的操作的。
    • 发布于2018-04-01
    • 举报
    • 评论 2
    • 0
    • 0
yoyojacky 回复了 汉云 :其实,可以通过 wiringPi 的库来进行控制的..... 回复
电子老工程师 回复了  :没有找到替代,封装条件不满足 回复

  • 树莓派是封装好GPIO的API的,你按规范去使用就好了。

    你所谓的低电平,其实就是一种检测,你可以看树莓派检测按键、检测IO之类的例子

    然后所谓 的关机脚本的执行,我猜想你是有一段特定的操作需要在关机时处理,然后进行关机吧,其实他们已经说了方法了,不过都是直接给出的关机指令,你可以试一下

    system("bash XXXX");// 其中XXXX是你需要执行脚本的全路径,比如 /abc/xyz.sh ,需要注意,有些操作(包括关机)需要高级权限的,你要确认你运行c程序的用户权限足够。

    • 发布于2018-04-02
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :线下已回复确认。 回复

  • 例程的是linux中的read函数,读取文件系统中的GPIO设备的节点。
    使用write函数,写1就是高,写0就是低。
    • 发布于2018-04-03
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :国产没有符合替代型号。 回复

  • linux的底层驱动已经被封装成若干个API,你要做的只是调用这些API

    你这个应用,可以将引脚拉低和关机放在同一个脚本文件里面去实现

    • 发布于2018-04-08
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :351550200 和351840200 molex 回复

  • 去安装 wiringPi 的库,有头文件可以调用的. C语言可以去判断 GPIO 的状态,然后读取状态再执行系统层面的 init 0, 没有问题的.    

    • 发布于2018-04-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

树莓派控制GPIO的原理是什么?如何一直检测这个状态