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/29 14:49:21

深度学习字体生成:从零开始掌握zi2zi项目

深度学习字体生成&#xff1a;从零开始掌握zi2zi项目 【免费下载链接】zi2zi Learning Chinese Character style with conditional GAN 项目地址: https://gitcode.com/gh_mirrors/zi/zi2zi 在当今数字化时代&#xff0c;字体生成技术正成为人工智能领域的热门应用。zi2…

作者头像 李华
网站建设 2026/4/1 21:31:51

Qwen3-VL在社交媒体内容审核中的多语言OCR实践

Qwen3-VL在社交媒体内容审核中的多语言OCR实践 如今&#xff0c;一张看似普通的图片可能暗藏玄机——表情包里夹带的煽动性标语、促销海报中隐藏的诱导话术、跨国社区传播的仇恨言论……这些嵌入图像的文字正成为虚假信息和违规内容的新温床。传统的文本过滤系统面对这类“视觉…

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

PaddleOCR多平台部署终极指南:从入门到实战

PaddleOCR多平台部署终极指南&#xff1a;从入门到实战 【免费下载链接】PaddleOCR 飞桨多语言OCR工具包&#xff08;实用超轻量OCR系统&#xff0c;支持80种语言识别&#xff0c;提供数据标注与合成工具&#xff0c;支持服务器、移动端、嵌入式及IoT设备端的训练与部署&#x…

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

Blockly开发者工具终极指南:轻松构建自定义编程块

Blockly开发者工具终极指南&#xff1a;轻松构建自定义编程块 【免费下载链接】blockly-devtools 项目地址: https://gitcode.com/gh_mirrors/bl/blockly-devtools 想要快速创建直观的图形化编程界面&#xff1f;Blockly开发者工具正是你需要的解决方案&#xff01;这个…

作者头像 李华
网站建设 2026/3/13 7:06:02

Qwen3-VL与GitHub镜像项目联动:加速AI模型分发与部署

Qwen3-VL与GitHub镜像项目联动&#xff1a;加速AI模型分发与部署 在多模态大模型快速演进的今天&#xff0c;一个现实问题始终困扰着开发者和研究者&#xff1a;如何让像Qwen3-VL这样动辄数十GB的视觉-语言模型&#xff0c;真正“跑起来”而不是“卡在下载途中”&#xff1f;尤…

作者头像 李华
网站建设 2026/3/30 21:44:59

乾升Android开发工程师职位面试全面解析

乾升 Android 开发工程师 职位描述 Android开发经验Android客户端产品研发 【岗位职责】flutter开发也可投递 1、熟悉JAVA、Kotlin等编程语言,熟练使用各种UI组件,了解基本的设计模式; 2、熟悉Android平台UI设计,熟悉常用布局名种控件、布局方式、动画和自定义控件的使用方法…

作者头像 李华