news 2026/4/2 11:20:21

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/3/27 2:52:58

DBeaver数据同步快速上手:跨平台数据传输完整实战指南

DBeaver数据同步快速上手&#xff1a;跨平台数据传输完整实战指南 【免费下载链接】dbeaver 项目地址: https://gitcode.com/gh_mirrors/dbe/dbeaver 还在为不同数据库间的数据迁移而头疼吗&#xff1f;DBeaver作为一款功能强大的开源数据库管理工具&#xff0c;提供了…

作者头像 李华
网站建设 2026/3/31 11:25:07

终极指南:5步快速安装openGauss企业级数据库 [特殊字符]

终极指南&#xff1a;5步快速安装openGauss企业级数据库 &#x1f680; 【免费下载链接】openGauss-server openGauss kernel ~ openGauss is an open source relational database management system 项目地址: https://gitcode.com/opengauss/openGauss-server 想要体验…

作者头像 李华
网站建设 2026/3/31 12:10:38

gptme开发新体验:用AI助手彻底改变你的编程方式

gptme开发新体验&#xff1a;用AI助手彻底改变你的编程方式 【免费下载链接】gptme Your agent in your terminal, equipped with local tools: writes code, uses the terminal, browses the web, vision. 项目地址: https://gitcode.com/GitHub_Trending/gp/gptme 还在…

作者头像 李华
网站建设 2026/3/30 15:03:47

Qwen-Image-Edit-2509:解锁AI图像编辑的无限可能

在数字化浪潮席卷各行各业的今天&#xff0c;AI图像编辑技术正以前所未有的速度重塑着我们的视觉创作方式。Qwen-Image-Edit-2509作为阿里巴巴通义千问团队的最新力作&#xff0c;不仅延续了强大的图像处理能力&#xff0c;更在多模态融合方面实现了质的飞跃。 【免费下载链接】…

作者头像 李华
网站建设 2026/4/1 23:17:20

Java学习革命:从零基础到项目实战的21天速成指南

Java学习革命&#xff1a;从零基础到项目实战的21天速成指南 【免费下载链接】OnJava8 《On Java 8》中文版 项目地址: https://gitcode.com/gh_mirrors/on/OnJava8 还记得第一次打开Java教材时的那种迷茫吗&#xff1f;面对密密麻麻的代码和抽象的概念&#xff0c;很多…

作者头像 李华
网站建设 2026/3/27 8:31:29

Autoprefixer:告别CSS兼容性烦恼的终极解决方案

Autoprefixer&#xff1a;告别CSS兼容性烦恼的终极解决方案 【免费下载链接】autoprefixer Parse CSS and add vendor prefixes to rules by Can I Use 项目地址: https://gitcode.com/gh_mirrors/au/autoprefixer 还在为不同浏览器需要添加不同的CSS前缀而头疼吗&…

作者头像 李华