树莓派教程 - 1.0 树莓派GPIO库wiringPi 点亮LED
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 -v 或 gpio 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相关推荐
- STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效
STM8S自学笔记-003 GPIO输出:点亮LED灯 and 跑马灯特效 点亮LED GPIO初始化函数:GPIO_Init() GPIO电平操作库函数:GPIO_WriteHigh().GPIO_ ...
- 蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED)
蓝牙芯片nRF51822开发系列(一):环境搭建和GPIO使用(点亮LED) 前言(文章末尾获取工程源码) 一.开发必备 二.开发环境搭建 1.创建文件 2.新建工程 三.编写代码 GPIO详解 使用 ...
- 树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率
Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 使用到的硬件: led,200Ω左右的电阻.杜邦线. 上一节使用最基本的 GPIO数字输出, ...
- stm8s: GPIO配置,点亮LED!PB4,PB5引脚LED点不亮
最近两天在做STM8S103的开发,调完硬件后,就开始编写软件了,第一步当然又是点亮LED灯了,结果很尴尬的死活点不亮!后来各种百度,认真查看数据手册,才发现一个很大的坑,由于粗心大意,没有看到,做个 ...
- 树莓派教程 - 1.2 树莓派GPIO库wiringPi 软件PWM
Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 使用到的硬件: led,200Ω左右的电阻.杜邦线. 上一节使用硬件PWM来控制led亮度, ...
- 树莓派教程 - 1.6 树莓派GPIO库wiringPi 外接USB串口ttyUSB ch340 cp2102
Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 前两篇介绍了树莓派的 ttyS0 和 ttyAMA0的使用,有详细的配置介绍和代码,有兴趣的 ...
- 树莓派教程 - 1.5 树莓派GPIO库wiringPi 使用硬件串口ttyAMA0与ttyS0
Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git 上一篇介绍 ttyS0串口的用法,说到了此串口利弊,可能会出现乱码,但绝对能满足绝大部分的要 ...
- 树莓派教程 - 2.2 树莓派CSI摄像头,raspivid、raspistill常用参数
usb摄像头使用固然方便,可usb传输和编解码需要占用大量CPU,而树莓派的CPU并不强,解析高码率图像时占用巨大. CSI摄像头的编解码可以调用树莓派的GPU,能很大减轻CPU压力. 而且树莓派官方 ...
- STM32固件库编程-----点亮led小灯
使用STM32固件库编程驱动led灯 第一步:打开keil5,创建工程文件 第二步:选择自己想要的路径(温馨提示,最好不要创建在C盘里面)然后点击保存 第三步:因为我们是使用STM32单片机所以选择S ...
最新文章
- vue 不会热启动_使用PM2搭建在线vue.js开发环境(以守护进程方式热启动)
- matlab用ezmesh绘制单位球,Matlab------------命令大全2
- 【原创】Ajax的用法总结
- oracle基于时间恢复整个数据库
- 第一百三十六期:详细讲解 Redis 的两种安装部署方式
- Eclipse环境下面的配置(转载)
- ASN.1编解码与编程
- IBM AIX创建lv
- javascript测试题和参考答案
- C++数据结构之图的储存结构——十字链表
- 模拟网络延迟抖动测试
- Zookeeper学习笔记2-------group创建、查询、删除
- A3A1自助申请PHP版搭建,微软全局子号-微软全局订阅A3桌面版office账号自助申请程序下载php版-西西软件下载...
- 女神找我帮忙--图片转成手绘,该不该答应?
- vector erase() and clear() in C++ -- vector的函数erase()和clear()
- git安装及使用教程
- 为什么判断一个数X是不是素数时只需判断其能否在2~根号X被整除即可?
- IIS 支持 flv文件播放 (浏览器中可打开一flv文件)
- 自动抢票之 12306 登录篇
- 一个普通211本科生找工作的那些事儿!
热门文章
- 【ARM-Linux开发】linux下Eclipse进行C编程时动态链接库的生成和使用
- 导航栏 UITabBarController等颜色的区别
- web项目在iis配置好后不能正确访问问题集锦,以及IIS常规设置
- 【实验】修改数据文件名字的三种途径
- velocity 时间显示 时间格式化 时间转化
- 【Java从0到架构师】Zookeeper - 系统高可用、分布式的基本概念、Zookeeper 应用场景
- linux_负载分析之LoadAverage
- [转]Linux内核基础与常用命令总结
- 新闻媒体是怎样使用计算机的,计算机技术在新闻上的应用
- linux进程timer,Linux Timer 示例