使用C语言操作树莓派GPIO的详细步骤

 更新时间:2021年06月08日 16:39:44   作者:波雅_汉库克  
今天抽空给大家普及使用C语言操作树莓派GPIO的详细步骤,本文大概分五步给大家介绍树莓派GPIO安装步骤,首先需要安装GPIO库然后进行一步步设置,具体操作方法跟随小编一起学习吧

第一步安装GPIO库。

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

地址链接4B的

http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/

第二步打开GPIO设置

打开GPIO,学习嘛,全打开得了。

保存重启。

第三步找一个GPIO的图

然后找一张树莓派GPIO的图,对照GPIO图写代码了。

看上图GPIO对应的WiringPi数字。

第四步写代码

这个就是代码中使用的GPIO的代号。上代码。

设置GPIO17和GPIO18交替闪烁。

#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
 
#define uchar unsigned char
#define uint unsigned int
#define LedPinRed 0
#define LedPinGreen 1
 
void ledInit()
{
    softPwmCreate(LedPinRed,0,100);
    softPwmCreate(LedPinGreen,10,100);
}
void ledColorSet(uchar r_val, uchar g_val)
{
    softPwmWrite(LedPinRed,r_val);
    softPwmWrite(LedPinGreen,g_val);    
}
 
int main()
{
    int i = 0;
    if(wiringPiSetup() == 1)
    {
        printf("Setup wiringPi failed!!");
        return 1;
    }
    ledInit();
    while(1)
    {
        ledColorSet(0xff,0x00);
        delay(500);
        ledColorSet(0x00,0xff);
        delay(500);
    }
    return 0;
}

wiringPi这个库中的函数可以查看文档,里面函数写的很清楚。

第五步,编译执行

-lwiringPi是链接wiringPi库

-lpthread链接线程库

最后一步执行     ./led 

gcc testLED.c -o led -lwiringPi -lpthread 

题外话

要是使用vim编写代码,其实对新手来说是很痛苦的,所以推荐vscode。

我自己的环境,使用ssh链接树莓派使用vscode编辑代码,然后编译执行。现在vscode支持远程ssh编辑代码,

远程树莓派写的代码,至于使用什么插件,百度一下吧,我也忘了,安装额的插件太多了忘记了。

以上就是使用C语言操作树莓派GPIO的详细内容,更多关于C语言操作树莓派GPIO的资料请关注脚本之家其它相关文章!

相关文章

  • VS2019添加引用出错:对COM组件的调用返回了错误HRESULT E_FAIL(未能完成操作未指定的错误)

    VS2019添加引用出错:对COM组件的调用返回了错误HRESULT E_FAIL(未能完成操作未指定的错误)

    这篇文章主要介绍了VS2019添加引用出错:对COM组件的调用返回了错误HRESULT E_FAIL(未能完成操作。未指定的错误),需要的朋友可以参考下
    2020-07-07
  • C++中static和const的作用和用法

    C++中static和const的作用和用法

    在C++中,"static"和"const"都是用于修饰变量的关键字,它们具有不同的作用,本文通过代码示例给大家详细的介绍static和const的作用和用法,,需要的朋友可以参考下
    2023-06-06
  • C语言实现2048游戏(ege图形库版)

    C语言实现2048游戏(ege图形库版)

    这篇文章主要为大家详细介绍了C语言实现2048游戏,ege图形库版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • C++超详细讲解强制类型转换

    C++超详细讲解强制类型转换

    在C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast。这四个关键字都是用于强制类型转换的
    2022-05-05
  • C语言超细致讲解函数递归

    C语言超细致讲解函数递归

    程序调⽤⾃⾝的编程技巧称为递归 recursion)函数⾃⼰调⽤⾃⼰就是递归,你也可以理解成是⼀种嵌套结构,但递归分为俩部分,第⼀是“递”,进⼊嵌套结构。第⼆是”归“,最终会⼀步⼀步返回。第⼀次接触递归都会很懵,慢慢理解这个过程就明⽩了
    2022-05-05
  • 解决了个困扰了2天的问题,定点运算问题

    解决了个困扰了2天的问题,定点运算问题

    本文主要讲解定点运算问题,需要的朋友可以参考一下。
    2016-06-06
  • Qt数据库应用之超级自定义委托

    Qt数据库应用之超级自定义委托

    Qt中需要用到自定义委托的情形很多,比如提供下拉框选择,进度条展示下载进度啥的,默认的单元格是没有这些效果的,需要自己单独用委托的形式来展示。本文将为大家介绍Qt中如何进行超级自定义委托,需要的可以参考一下
    2022-03-03
  • C++遍历文件夹下所有文件的多种方法

    C++遍历文件夹下所有文件的多种方法

    这篇文章主要介绍了C++遍历文件夹下所有文件的多种方法,需要的朋友可以参考下
    2018-01-01
  • OpenCV视频流C++多线程处理方法详细分析

    OpenCV视频流C++多线程处理方法详细分析

    为OpenCV是搞计算机视觉必须要掌握的基础,这篇文章主要给大家介绍了关于OpenCV视频流多线程处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • C++中Boost的智能指针weak_ptr

    C++中Boost的智能指针weak_ptr

    这篇文章介绍了C++中Boost的智能指针weak_ptr,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论