Linux GPIO口的控制(树莓派4B实现)(文件方式)

手中有个树莓派4B,闲的无聊,想操作一下他的GPIO口。

我装的系统是Ubuntu 19.10 IoT版,系统的安装方式就不赘述了,可以在官网上查查,有详细说明。当然也可以在《树莓派实验室》这个网站找找,也感谢这个网站为我提供了树莓派的原理图下载(树莓派实验室

言归正传

Linux的GPIO文件方式操作,首先要找到这个文件在的位置,其路径在:/sys/class/gpio/

在这个文件夹下至少有两个文件 export和unexport,分别记录要操作的GPIO口的值和取消操作的值。

接下来就要看原理图来确定你想操作的GPIO口了,如下图:

比如我们选择GPIO14,那我们就可以先将14口加入到export文件:

echo 14 > /sys/class/gpio/export

然后注意文件夹中就多了一个gpio14这个文件,然后设置这个IO口的方向,比如设置为输出:

 echo out > /sys/class/gpio/gpio14/direction

再接下来就是设置他的高低电平了,比如设置高电平:

echo 1 > /sys/class/gpio/gpio14/value

假如你现在用完了,可以退出对这个IO口的使用:

echo 14 >/sys/class/gpio/unexport

可以用代码简单实现用一下:

C语言版本:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
        int nValue = 0;
        int nCnt = 10000;
        char chData[256]={0};
        system("echo 14 > /sys/class/gpio/export");
        system("echo out > /sys/class/gpio/gpio14/direction");
        do
        {
                nValue=nValue%2;
                sleep(1);
                sprintf(chData,"echo %d > /sys/class/gpio/gpio14/value",nValue);
                system(chData);
                nValue++;
                nCnt--;
        }while(nCnt);
        system("echo 14 > /sys/class/gpio/unexport");
        return 0;
}

python版本:

import os
import time
os.system("echo 14 > /sys/class/gpio/export")
os.system("echo out >/sys/class/gpio/gpio14/direction")
nCnt = 1000
while(nCnt):
    time.sleep(1)
    os.system("echo 1 >/sys/class/gpio/gpio14/value")
    time.sleep(1)
    os.system("echo 0 >/sys/class/gpio/gpio14/value")
    print(nCnt)
    nCnt=nCnt-1
os.system("echo 14 > /sys/class/gpio/unexport")

 

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值