哪个购物平台最好seo高手培训
2026/4/18 4:29:29 网站建设 项目流程
哪个购物平台最好,seo高手培训,可以做业务推广的网站有哪些,微信公众号 链接微网站树莓派5引脚定义通俗解释#xff1a;物理编号与BCM到底怎么用#xff1f; 你有没有过这样的经历#xff1f; 接好LED#xff0c;写完代码#xff0c;一运行——灯不亮。 反复检查线路、重启树莓派、换电源……最后发现#xff1a; 原来是把“Pin 18”理解错了#x…树莓派5引脚定义通俗解释物理编号与BCM到底怎么用你有没有过这样的经历接好LED写完代码一运行——灯不亮。反复检查线路、重启树莓派、换电源……最后发现原来是把“Pin 18”理解错了是物理的第18个引脚还是BCM编号里的GPIO 18这两个数字在树莓派上根本不是一回事。这正是无数初学者踩过的坑也是很多老手偶尔也会混淆的地方。尤其在树莓派5发布后虽然引脚总数仍为40个但内部SoC换成了全新的BCM2712部分功能复用和性能优化带来了新的使用注意点。今天我们就来彻底讲清楚什么是物理编号什么是BCM编号它们有什么区别什么时候该用哪个别再靠猜了看完这篇你就全明白了。从一块板子说起树莓派的“手脚”在哪树莓派不像普通电脑只有USB、HDMI这些标准接口它还有一排裸露的金属针脚——这就是GPIOGeneral Purpose Input/Output中文叫“通用输入输出引脚”。你可以把它想象成树莓派的“手脚”用来连接按钮、传感器、电机、显示屏等各种外设。但问题来了这么多引脚怎么知道哪一个是哪一个答案就是——编号系统。而树莓派偏偏有两种不同的编号方式这就埋下了混乱的种子。物理编号按位置数数就能找到的“地图坐标”我们先看最直观的一种物理编号Physical Pin Numbering。它是怎么编号的很简单从左上角开始按实际位置顺序数下去。树莓派的GPIO排针是2×20 排列共40个引脚。编号规则如下第一行Pin 1 → Pin 2 → … → Pin 20第二行Pin 21 → Pin 22 → … → Pin 40排列方式像这样俯视图3V3 | 5V GND | 5V GPIO X | GND GPIO Y | GPIO Z ... ...比如- 左上角第一个引脚是Pin 1它是3.3V 电源- 它右边那个是Pin 2是5V 电源- 下一行左边是Pin 3对应的是BCM GPIO 2- 再下一个是Pin 4又是5V- 一直到右下角最后一个是Pin 40✅ 小贴士Pin 1通常有一个白色小圆点或方框标记是定位起点的关键为什么说它“直观”因为你不需懂编程、也不用看芯片手册只要拿着杜邦线一根根对过去就能确认接的是哪个孔。就像你在地图上找“A3”格子一样只看位置不看内容。这种编号方式特别适合- 初学者接线教学- 面包板快速搭建原型- 和别人口头沟通“我把LED接到第11个针上了”但它有个致命弱点不能直接用于编程。你想啊操作系统怎么知道“第11个针”对应的是哪个寄存器它得靠芯片内部的逻辑编号才行。所以就有了第二种编号——BCM。BCM编号程序里真正起作用的“身份证号”BCM全称是Broadcom SOC GPIO Numbering也就是博通公司为其SoC片上系统设计的一套逻辑编号体系。树莓派5使用的SoC是BCM2712所有GPIO的功能控制都由这个芯片决定。每个引脚都有一个“身份证”BCM编号比如- 物理 Pin 7 → 对应 BCM GPIO 4- 物理 Pin 11 → 对应 BCM GPIO 17- 物理 Pin 12 → 对应 BCM GPIO 18- 物理 Pin 13 → 对应 BCM GPIO 27这些对应关系是由硬件设计固定的不是随便定的。当你在Python里写GPIO.setup(18, OUT)时你其实是在告诉系统“我要操作BCM编号为18的那个引脚”。如果误以为这是物理Pin 18其实是BCM 24那很可能接错功能甚至烧坏设备。为什么必须用BCM编号编程因为操作系统通过设备树Device Tree把BCM编号映射到具体的硬件寄存器。比如 BCM GPIO 18 支持硬件PWM输出这意味着你可以用它精确控制舵机角度或LED亮度而CPU几乎不参与计算。但如果你用了物理Pin 18BCM 24它并不支持PWM只能做普通IO效果天差地别。这就是为什么大多数主流库如RPi.GPIO、gpiozero、pigpio默认使用BCM编号。一张表看懂两种编号的核心差异对比项物理编号BOARDBCM编号BCM编号依据引脚在板子上的物理位置SoC内部GPIO控制器分配是否包含电源/GND是如Pin 13.3V, Pin 6GND否仅指可编程IO跨代兼容性好Raspberry Pi 1~5一致差不同型号分布不同编程支持需显式设置模式才能使用多数库默认使用功能支持无法体现复用功能可配置ALT功能I²C/PWM等使用场景接线指导、调试核对程序开发、高级功能调用 结论一句话接线看物理编号编程看BCM编号。实战演示用BCM编号控制LED我们来写一段真实的Python代码点亮一个LED。假设你把LED正极接到物理Pin 12负极接地GND。查表可知Pin 12 对应的是BCM GPIO 18并且支持PWM。import RPi.GPIO as GPIO import time # 设置使用BCM编号模式 ← 关键一步 GPIO.setmode(GPIO.BCM) # 定义引脚 LED_PIN 18 # 注意这里是BCM编号不是物理Pin 18 # 设置为输出模式 GPIO.setup(LED_PIN, GPIO.OUT) try: # 闪烁三次 for _ in range(3): GPIO.output(LED_PIN, GPIO.HIGH) print(LED ON) time.sleep(0.5) GPIO.output(LED_PIN, GPIO.LOW) print(LED OFF) time.sleep(0.5) finally: # 清理资源释放引脚 GPIO.cleanup() 如果你把LED_PIN 18误解为物理Pin 18那你实际上操作的是BCM GPIO 24可能没有任何反应或者影响其他外设。常见误区与避坑指南❌ 误区1以为“Pin XX”就是BCM GPIO XX这是最常见的错误记住-物理Pin 7 ≠ BCM 7- 实际上物理Pin 7 BCM GPIO 4- 而 BCM GPIO 7 在物理Pin 26上建议随时备一张对照图或者直接在终端输入pinout前提是安装了gpiozero库sudo apt install python3-gpiozero执行后会输出一个清晰的ASCII图形标明每个引脚的物理编号、BCM编号、功能和电压等级非常实用。❌ 误区2随便占用I²C/SPI专用引脚有些引脚天生就带着“任务”出生比如BCM编号功能默认用途GPIO 2 / 3I²C SDA/SCL连接OLED、温湿度传感器GPIO 9 / 10 / 11SPI MOSI/MISO/SCLK连接ADC、RF模块GPIO 14 / 15UART TX/RX串口通信如果你把这些引脚当成普通IO来用可能会导致- I²C设备无法识别- SPI传输失败- SSH串口登录失效 解决方案- 查阅官方文档《 Raspberry Pi GPIO Pinout 》- 使用raspi-config启用/禁用特定接口- 在代码中避免冲突配置❌ 误区3过度依赖3.3V供电引脚虽然物理Pin 1是3.3V电源但它能提供的电流有限一般不超过50mA。如果你接了个大功率模块如蜂鸣器、继电器、RGB灯带可能导致- 电压下降系统不稳定- 树莓派自动关机或重启✅ 正确做法- 高功耗设备使用外部电源如5V USB电源- 地线共地即可- 必要时加三极管或光耦隔离如何选择编号模式实战建议✅ 教学场景 → 优先用物理编号BOARD对学生来说“第7个针脚接按钮”比“BCM GPIO 4”更容易理解。代码中只需改一行GPIO.setmode(GPIO.BOARD) BUTTON_PIN 7 # 直接使用物理编号优点直观、易教、少出错。缺点无法利用功能复用移植性差。✅ 工程项目 → 必须用BCM编号因为你要用到- PWM调光- I²C读取传感器- SPI驱动屏幕- 中断检测按键这些都依赖于具体引脚的硬件能力只有BCM编号才能准确表达。而且现在大多数开源项目、教程、HAT扩展板都是基于BCM编号开发的统一标准更利于协作。✅ 最佳实践两者同时标注无论是画电路图、写文档还是做标签我都建议你同时写出物理编号和BCM编号。例如LED阳极 → 物理Pin 12 (BCM GPIO 18)按钮信号线 → 物理Pin 13 (BCM GPIO 27)这样一目了然后期维护也轻松得多。高级技巧查看当前引脚状态除了pinout命令你还可以用工具动态查看引脚配置。方法1使用gpio readall安装wiringpi注意已不再维护仅作参考git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build然后运行gpio readall输出类似-----------------------------Model B------------------------------ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | ---------------------------------------------------------------- | | | 3.3V | | | 1 || 2 | | | 5V | | | | 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0V | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | IN | TxD | 15 | 14 | ----------------------------------------------------------------可以清楚看到每个引脚的当前模式IN/OUT/ALT、电平状态、复用功能等。方法2使用 Python gpiozero 查看信息from gpiozero import Device from gpiozero.pins.native import NativePin # 打印所有可用引脚信息 for i in range(1, 28): # BCM GPIO 1~27 try: pin NativePin(i) print(fBCM GPIO {i}: Function{pin.function}, Pull{pin.pull}) except: print(fBCM GPIO {i}: Not accessible)有助于调试引脚是否被占用或配置错误。总结掌握引脚定义才算真正入门树莓派回到最初的问题“树莓派5的引脚定义到底该怎么理解”现在你应该有了清晰的答案物理编号是你手上那块板子的“地理坐标”用来接线、查手册、和人交流BCM编号是芯片内部的“身份证号”用来编程、调功能、控硬件二者必须配合使用缺一不可。别再凭感觉接线了。也别再复制粘贴代码却不看引脚定义了。真正的嵌入式开发是从认清每一个引脚的身份开始的。附加建议养成好习惯少走十年弯路每次项目开始前画一张引脚连接图- 用 Fritzing、Draw.io 或手绘都可以- 标明物理编号 BCM编号 功能说明在代码开头明确声明编号模式python GPIO.setmode(GPIO.BCM) # 或 GPIO.BOARD使用彩色杜邦线建立视觉规范- 红色5V- 橙色3.3V- 黑色GND- 黄色/白色信号线保留一份打印版引脚图贴在工作台- 推荐网站 https://pinout.xyz遇到问题先运行pinout命令- 它能帮你快速定位当前配置如果你正在学习树莓派或是准备做一个物联网项目不妨把这篇文章收藏起来。下次当你拿起杜邦线的时候你会感谢现在认真读完它的自己。 互动时间你在使用树莓派引脚时踩过哪些坑欢迎在评论区分享你的故事

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询