我想写的是一个能够访问我的USB端口的应用程序。
控制何时为手机充电以及何时不进行充电。也许随着时间的推移,我想扩展应用程序来控制我房间里的灯泡,风扇和电视。
我想学习如何解决这个问题,而不仅仅是复制一些代码和粘贴。我希望有一个快速而简化的教程,我将非常感激(请小语言,你们都知道我还在学习:-))。
我想要实现的确切工作就是让端口在需要时发出电源。也就是说,如果可能的话,应该关闭它并使用代码。
答案 0 :(得分:2)
无法从用户模式代码更改USB端口的电源状态。这不是.NET限制,没有用户应用程序可以更改USB端口的电源状态。实际上,我认为电源状态是由芯片组本身控制的,如果不使用专用芯片组就无法将其关闭。
此外,如果您的设备短路,您可以刻录芯片组和主板。
唯一(安全)解决方案是使用外部设备控制继电器为您的设备打开或关闭电源。
类似问题有多个答案,例如Windows- Power off a USB device in Software
一个好的选择是使用外部设备,如Arduino(或Netduino),.NET Gadgeteer或任意数量的外部设备。价格和功能当然有所不同。
如果您想自己构建设备,可以通过简单的Google搜索找到许多USB继电器
修改强>
关于串行端口,两种端口类型之间几乎没有任何关系。串行端口不是为提供电源而设计的。您可以使用技巧来使用引脚电压为某些外部设备供电,但这会导致问题,因为没有足够的电流为大多数设备供电。燃烧芯片组是另一种可能的结果。
另一方面,USB端口是通过特定电线明确设计的to provide power,这些电线无法正常控制。这就是为什么即使机器已经关闭,您也可以从台式机的USB端口为手机充电。
编辑2:睡眠充电端口 正如Ben Voigt所说,并非所有USB端口都允许在关机时充电。
有多种端口类型支持充电。 Charging ports提供比普通端口更多的电流,但在关闭计算机时关闭。另一方面,Sleep-and-charge ports即使在计算机关闭时也能提供电源。