news 2026/4/18 3:02:49

WiringPi库完整指南:从零开始掌握树莓派GPIO编程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WiringPi库完整指南:从零开始掌握树莓派GPIO编程

WiringPi库完整指南:从零开始掌握树莓派GPIO编程

【免费下载链接】WiringPiGordon's Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings)项目地址: https://gitcode.com/gh_mirrors/wi/WiringPi

想要轻松控制树莓派的GPIO引脚吗?WiringPi库就是你的最佳选择!这个强大的C语言库让树莓派GPIO编程变得简单有趣。无论你是初学者还是有一定经验的开发者,都能快速上手。

快速上手:安装WiringPi库

首先,让我们来安装WiringPi库。这个过程比想象中要简单得多:

git clone https://gitcode.com/gh_mirrors/wi/WiringPi cd WiringPi ./build debian mv debian-template/wiringpi_3.16_arm64.deb . sudo apt install ./wiringpi_3.16_arm64.deb

安装完成后,你就可以开始编写自己的树莓派GPIO程序了。如果以后需要卸载,只需运行:sudo apt purge wiringpi

理解引脚编号:三种不同方式

树莓派上的引脚编号系统可能会让新手感到困惑,但别担心,我们来理清一下:

  • 物理编号:就是板子上实际标注的引脚位置
  • BCM编号:芯片制造商使用的技术编号
  • WiringPi编号:库自己定义的一套编号规则

不同的树莓派型号(26针或40针)布局会有所不同,所以选择正确的编号方式很重要。

开始编程:初始化设置

在编写任何GPIO程序之前,首先要进行初始化。推荐使用新版函数:

wiringPiSetupPinType(WPI_PIN_BCM);

或者使用更安全的设备初始化方式:

wiringPiSetupGpioDevice(WPI_PIN_BCM);

基础操作:控制GPIO引脚

设置引脚模式

pinMode(17, OUTPUT); // 将引脚17设为输出模式

可用的模式包括输入、输出、PWM输出等,让你灵活控制每个引脚。

数字信号控制

点亮LED、读取按钮状态,这些基础操作都很简单:

// 写入高电平 digitalWrite(17, HIGH); // 读取引脚状态 int value = digitalRead(18);

上拉/下拉电阻

防止引脚悬空状态,确保信号稳定:

pullUpDnControl(18, PUD_UP); // 启用上拉电阻

高级功能:中断处理

中断是GPIO编程中的重要概念,让你能够及时响应外部事件。

注册中断服务程序

void myInterruptHandler(struct WPIWfiStatus status, void* data) { // 处理中断事件 } wiringPiISR2(16, INT_EDGE_FALLING, myInterruptHandler, 3000, NULL);

等待中断

如果你需要等待某个中断发生:

struct WPIWfiStatus status = waitForInterrupt2(16, INT_EDGE_FALLING, 1000, 3000);

实用技巧和注意事项

  1. 树莓派5用户注意:PWM平衡模式不被支持,会自动切换到Mark/Space模式

  2. 初始化很重要:在操作GPIO之前,一定要正确初始化库

  3. 中断去抖动:使用中断时,设置适当的去抖动时间可以避免误触发

动手实践:简单LED控制

让我们用一个简单的例子来结束今天的教程:

#include <wiringPi.h> int main(void) { wiringPiSetupPinType(WPI_PIN_BCM); pinMode(17, OUTPUT); while(1) { digitalWrite(17, HIGH); delay(500); digitalWrite(17, LOW); delay(500); } }

这个程序会让连接到引脚17的LED灯每秒闪烁一次。

总结

WiringPi库为树莓派GPIO编程提供了强大而简单的工具。通过本指南,你已经掌握了从安装到基础操作再到中断处理的核心知识。现在,拿起你的树莓派,开始创造吧!

记住,实践是最好的老师。多动手尝试,你会发现自己很快就能熟练运用这些功能了。

【免费下载链接】WiringPiGordon's Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings)项目地址: https://gitcode.com/gh_mirrors/wi/WiringPi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:14:07

如何快速使用w3m:终端网页浏览的完整指南

如何快速使用w3m&#xff1a;终端网页浏览的完整指南 【免费下载链接】w3m Debians w3m: WWW browsable pager 项目地址: https://gitcode.com/gh_mirrors/w3/w3m 在当今图形界面主导的时代&#xff0c;你是否曾经想过在纯文本终端中也能高效浏览网页&#xff1f;w3m正是…

作者头像 李华
网站建设 2026/4/18 6:25:40

glTFast完整指南:Unity 3D模型加载的终极解决方案

&#x1f680; 核心优势&#xff1a;让复杂的3D模型加载变得像打开普通文件一样简单 【免费下载链接】glTFast Efficient glTF 3D import / export package for Unity 项目地址: https://gitcode.com/gh_mirrors/gl/glTFast 为什么选择glTFast&#xff1f; 在Unity开发…

作者头像 李华
网站建设 2026/4/18 9:43:03

JLink驱动安装方法项目应用:配合Keil实现下载

JLink驱动安装实战&#xff1a;手把手教你配通Keil下载调试链路 在嵌入式开发的日常中&#xff0c;你是否经历过这样的场景&#xff1f;代码写完信心满满点击“Download”&#xff0c;结果Keil弹出一句冰冷提示&#xff1a;“No J-Link found”&#xff1b;或者连接上了却卡在…

作者头像 李华
网站建设 2026/4/18 7:04:30

ER-Save-Editor:轻松定制你的艾尔登法环冒险之旅

ER-Save-Editor&#xff1a;轻松定制你的艾尔登法环冒险之旅 【免费下载链接】ER-Save-Editor Elden Ring Save Editor. Compatible with PC and Playstation saves. 项目地址: https://gitcode.com/GitHub_Trending/er/ER-Save-Editor 还在为某个BOSS反复卡关而苦恼&am…

作者头像 李华
网站建设 2026/4/18 3:51:06

深度评测:OptiScaler如何实现游戏画质与性能的完美平衡

深度评测&#xff1a;OptiScaler如何实现游戏画质与性能的完美平衡 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiScaler作为…

作者头像 李华