Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git

电脑需要提前安装的工具:

SSH、串口 - 终端神器 MobaXterm,官网下载链接:https://mobaxterm.mobatek.net/download.html

windows端 代码编辑工具: VScode、Source Insight、Sublime, 都是不错的选择。选其一安装即可。

使用到的硬件:

led,200Ω左右的电阻、杜邦线。

在树莓派上控制GPIO,最简单的方式莫过于使用 wiringPi函数库了。

wiringPi简介

-- wiringPi是一个用c语言编写的GPIO函数库。起初只是作为芯片的GPIO库,而发展到今天,wiringPi提供了非常丰富的功能:GPIO、UART、I2C、SPI、PWM等,同时也提供了中断、多线程等操作,功能非常强大。

-- wiringPi的函数类似于 Arduino,十分容易上手。使用c/c++进行开发,并且可以被其他语言转换,例如python。

一、获取wiringPi

终端输入 gpio -vgpio readall,来查看本机是否安装了 wiringpi.

如果指令相应错误,则是没有安装。使用下面命令进行安装。

sudo apt-get inatall wiringpi

二、GPIO管脚编码

wiringPi函数库的管脚编码,大致分为几种:1.wiringPi编码  2.BCM编码  3.物理引脚编码

int wiringPiSetup (void) ;             //设置使用 wiringPi编码。

int wiringPiSetupGpio (void) ;     // 设置使用 BCM编码。

int wiringPiSetupPhys (void) ;     // 设置使用 物理引脚编码,不常用。

三、硬件连接

我们使用 wiringPi编码的 7脚,输出0/3.3V电平,来控制LED的亮灭。

LED的压降为 2V左右,限制单个GPIO的输出电流在5mA左右,电阻的取值为 200~680Ω较为合适。

led的阳极串联200Ω电阻,连接到树莓派wiringPi编码的7脚。(一定要区分wiringPi编码 、BCM编码 、和物理引脚编码

四、编写c代码

Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git

使用到的函数有

函数语句 函数功能
wiringPiSetup(); 使用wiring编码去初始化GPIO序号
pinMode(int pin, int mode); 设置GPIO电气属性
digitalWrite(int pin, int value); 设置一个数字引脚,输出指定电平
delay(unsigned int howLong); 延时 xx ms
#include <wiringPi.h>int led = 7;                    // 定义使用wiringPi编码的7引脚
int main(void)
{wiringPiSetup();            // 使用wiring编码去初始化GPIO序号pinMode(led, OUTPUT);       // 设置GPIO电气属性为推挽输出while(1){digitalWrite(led, 1);   // led亮delay(500);             // 延时500msdigitalWrite(led, 0);   // led灭delay(500);             // 延时500ms}return 0;
}

通过MobaXterm,使用FTP,将led.c传输到树莓派文件夹内。

如何使用 FTP,见准备篇:https://blog.csdn.net/Mark_md/article/details/107113372

五、编译运行

使用下列指令编译。-o led表示指定生成文件的名字为led,-lwiringPi表示链接wiringPi库。

gcc led.c -o led -lwiringPi

使用如下命令运行

./led

使用如下组合键,结束运行

Ctrl + c

树莓派教程 - 1.0 树莓派GPIO库wiringPi 点亮LED相关推荐

  1. STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效

    STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效 点亮LED GPIO初始化函数:GPIO_Init() GPIO电平操作库函数:GPIO_WriteHigh().GPIO_ ...

  2. 蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED)

    蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED) 前言(文章末尾获取工程源码) 一.开发必备 二.开发环境搭建 1.创建文件 2.新建工程 三.编写代码 GPIO详解 使用 ...

  3. 树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率

    Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 使用到的硬件: led,200Ω左右的电阻.杜邦线. 上一节使用最基本的 GPIO数字输出, ...

  4. stm8s: GPIO配置,点亮LED!PB4,PB5引脚LED点不亮

    最近两天在做STM8S103的开发,调完硬件后,就开始编写软件了,第一步当然又是点亮LED灯了,结果很尴尬的死活点不亮!后来各种百度,认真查看数据手册,才发现一个很大的坑,由于粗心大意,没有看到,做个 ...

  5. 树莓派教程 - 1.2 树莓派GPIO库wiringPi 软件PWM

    Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 使用到的硬件: led,200Ω左右的电阻.杜邦线. 上一节使用硬件PWM来控制led亮度, ...

  6. 树莓派教程 - 1.6 树莓派GPIO库wiringPi 外接USB串口ttyUSB ch340 cp2102

    Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 前两篇介绍了树莓派的 ttyS0 和 ttyAMA0的使用,有详细的配置介绍和代码,有兴趣的 ...

  7. 树莓派教程 - 1.5 树莓派GPIO库wiringPi 使用硬件串口ttyAMA0与ttyS0

    Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 上一篇介绍 ttyS0串口的用法,说到了此串口利弊,可能会出现乱码,但绝对能满足绝大部分的要 ...

  8. 树莓派教程 - 2.2 树莓派CSI摄像头,raspivid、raspistill常用参数

    usb摄像头使用固然方便,可usb传输和编解码需要占用大量CPU,而树莓派的CPU并不强,解析高码率图像时占用巨大. CSI摄像头的编解码可以调用树莓派的GPU,能很大减轻CPU压力. 而且树莓派官方 ...

  9. STM32固件库编程-----点亮led小灯

    使用STM32固件库编程驱动led灯 第一步:打开keil5,创建工程文件 第二步:选择自己想要的路径(温馨提示,最好不要创建在C盘里面)然后点击保存 第三步:因为我们是使用STM32单片机所以选择S ...

最新文章

  1. vue 不会热启动_使用PM2搭建在线vue.js开发环境(以守护进程方式热启动)
  2. matlab用ezmesh绘制单位球,Matlab------------命令大全2
  3. 【原创】Ajax的用法总结
  4. oracle基于时间恢复整个数据库
  5. 第一百三十六期:详细讲解 Redis 的两种安装部署方式
  6. Eclipse环境下面的配置(转载)
  7. ASN.1编解码与编程
  8. IBM AIX创建lv
  9. javascript测试题和参考答案
  10. C++数据结构之图的储存结构——十字链表
  11. 模拟网络延迟抖动测试
  12. Zookeeper学习笔记2-------group创建、查询、删除
  13. A3A1自助申请PHP版搭建,微软全局子号-微软全局订阅A3桌面版office账号自助申请程序下载php版-西西软件下载...
  14. 女神找我帮忙--图片转成手绘,该不该答应?
  15. vector erase() and clear() in C++ -- vector的函数erase()和clear()
  16. git安装及使用教程
  17. 为什么判断一个数X是不是素数时只需判断其能否在2~根号X被整除即可?
  18. IIS 支持 flv文件播放 (浏览器中可打开一flv文件)
  19. 自动抢票之 12306 登录篇
  20. 一个普通211本科生找工作的那些事儿!

热门文章

  1. 【ARM-Linux开发】linux下Eclipse进行C编程时动态链接库的生成和使用
  2. 导航栏 UITabBarController等颜色的区别
  3. web项目在iis配置好后不能正确访问问题集锦,以及IIS常规设置
  4. 【实验】修改数据文件名字的三种途径
  5. velocity 时间显示 时间格式化 时间转化
  6. 【Java从0到架构师】Zookeeper - 系统高可用、分布式的基本概念、Zookeeper 应用场景
  7. linux_负载分析之LoadAverage
  8. [转]Linux内核基础与常用命令总结
  9. 新闻媒体是怎样使用计算机的,计算机技术在新闻上的应用
  10. linux进程timer,Linux Timer 示例