You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让运行MicroPython的USB设备检测是否连接到PC活跃USB端口?

检测MicroPython设备是否连接到PC活跃USB端口的实用方案

思路1:检测USB D+/D-引脚电平

这是最直接且硬件依赖低的方案,核心原理:

  • 纯充电的USB充电器/端口通常会把D+和D-短接(电平一致),或保持固定低电平
  • PC的活跃USB端口(支持数据传输)在未枚举时,D+或D-会有上拉(USB2.0规范中,全速设备D+上拉3.3V,低速设备D-上拉),因此两者电平不一致

操作步骤:

  1. 查设备硬件手册,找到对应USB的D+、D-引脚(比如PyBoard的D+是X1、D-是X2;部分ESP32开发板的D+是GPIO20、D-是GPIO19)
  2. 将两个引脚配置为输入模式,按需启用内部上拉/下拉
  3. 读取电平并判断:电平一致则为纯电源,不一致则为PC活跃端口

MicroPython代码示例:

from machine import Pin
import time

d_plus = Pin(20, Pin.IN, Pin.PULL_DOWN)  # 替换为你的D+引脚
d_minus = Pin(19, Pin.IN, Pin.PULL_DOWN) # 替换为你的D-引脚

while True:
    dp_level = d_plus.value()
    dm_level = d_minus.value()
    if dp_level != dm_level:
        print("已连接到PC活跃USB端口")
        # 执行交互逻辑,比如启动串口通信
    else:
        print("仅连接电源")
        # 执行常规工作逻辑
    time.sleep(2)

思路2:监听USB主机枚举事件

如果设备自带USB设备控制器(比如PyBoard、RP2040系列),可直接通过MicroPython的USB模块检测主机连接状态:

代码示例(以PyBoard为例):

import usb.core
import time

while True:
    if usb.core.dev().connected():
        print("检测到PC USB主机连接")
        # 启动交互模式,比如开启文件传输、命令响应
    else:
        print("未连接到USB主机")
        # 保持常规工作模式
    time.sleep(1)

思路3:利用USB串口的CTS引脚状态

如果设备通过USB CDC串口和PC通信,PC连接并打开串口时,通常会拉低CTS引脚(Clear To Send),纯充电时CTS保持高电平:

操作步骤:

  1. 查硬件手册找到USB串口对应的CTS引脚
  2. 配置为输入引脚,读取电平状态

代码示例:

from machine import Pin
import time

cts_pin = Pin(15, Pin.IN, Pin.PULL_UP)  # 替换为你的CTS引脚

while True:
    if cts_pin.value() == 0:
        print("PC已打开串口,处于活跃连接状态")
        # 执行交互逻辑
    else:
        print("仅连接电源或PC未打开串口")
        # 执行常规逻辑
    time.sleep(2)

思路4:检测USB总线电流变化(需额外硬件)

纯充电时设备电流相对稳定,PC枚举或传输数据时电流会有明显波动。可在VBUS线路串联0.1Ω采样电阻,通过ADC读取电压差计算电流:

代码示例(以ESP32为例):

from machine import ADC, Pin
import time

adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB)  # 支持0-3.3V输入

while True:
    voltage = adc.read() * (3.3 / 4095)
    current = voltage / 0.1  # 采样电阻为0.1Ω
    if current > 0.1:  # 假设枚举时电流超过100mA
        print("检测到PC活跃连接")
    else:
        print("仅连接电源")
    time.sleep(1)

内容的提问来源于stack exchange,提问作者PhilTilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:25:19