能否通过软件方式限制 PC 的 USB 输出电流
软件上不能、硬件上不能。Linux上,通过该内核可以修改一些错误策略,但本质上不影响实际硬件行为,也可以理解为,不能。PC的USB每个端口的最大电流按照USB规范上的规定是500mA,但当设备接入的时候,默认是按照100mA供电的,所有的USB设备的配置描述符都有自己需要的电流的描述: 【能否通过软件方式限制 PC 的 USB 输出电流】 
上图右侧最下的就是电流需求。但是,Linux代码里只是检查供电是否超过最大值,但不会因为超过最大值就禁用设备。Linux内核函数usb_set_configuration,里面有检查: i = dev-\u0026gt;bus_mA - cp-\u0026gt;desc.bMaxPower * 2; if (i \u0026lt; 0) dev_warn(\u0026amp;dev-\u0026gt;dev, "new config #%d exceeds power " "limit by %dmA\", configuration, -i);但只是一个warning,所以,软件上是无法限制的,实际上,限制了也没用,设备会尽可能的去用它需要的电流,如果主机硬件提供不了,设备硬件自己就停止工作了。软件上没有办法控制它。你能做的唯一的办法就是当设备要求更多的电流的时候,你把这个设备disable,但想限制电流大小,是没有硬件访问接口的。
■网友
USB设备的电流是设备接入计算机的时候,枚举的过程中向计算机申请的,有一个8位寄存器,值范围是0~24,对应的电流是20mA~500mA。如果枚举过程中设备没有向计算机提交这个需要电流的值,计算机则默认按最大电流提供,USB2.0设备是500mA,USB1.1设备是200mA。不知道你要限制电流干嘛?
推荐阅读
- 船舶■江苏镇江谏壁船闸2020年船舶通过量近2亿吨
- 汽车知识|押宝全新造型,东风雪铁龙新C5能否成为神龙公司“救世主”
- 大学再有三个月就结束了,没学到知识,参加一个软件测试培训机构好吗
- 红米手机通过QQ空间的成功营销,给涉足社会化营销的企业有哪些启示
- 中国版Evan能火吗美国9岁男童录制评测玩具视频年入800万,中国能否复制成功
- 商家通过低保户购物而把自己的利润返还赠送低保户安装宽带或者旧电脑可行吗
- 大部分黑客或安全研究员读的是啥「大学专业 」
- 疾病|医生不避讳:4种疾病可以通过性传播,思想开放的人要小心了
- 软件公司为啥频繁地在培训机构批量招人
- 汽车市场|中期改款再战D级车市场,新雷克萨斯LS能否超过宝马7系等对手?
