我知道这可能不是最简单的事情,但我试图用USB连接微控制器和PC。我不想使用内部USART的微控制器或USB到RS232转换,其项目,以帮助我了解各种原则。因此,从微控制器端完成通信是小菜一碟 - 我的意思是,当我知道他的协议时,它很容易在Micro上实现,因为我直接控制了evrything,甚至是精确的时序。从Windows控制USB
但这不是PC的情况。我对Windows处理连接设备的概念不是很熟悉。在我之前的一个问题中,我询问Windows如何通过驱动程序与设备协同工作。我明白,对于Windows的内部使用,驱动程序必须具有一些可用于OS的默认功能集。我的意思是,当操作系统要访问硬盘驱动器时,它会调用硬盘驱动器(可能是操作系统内部的硬盘驱动器),并带有特定的“问题”,这意味着硬盘驱动器必须写入与Windows配合才能具有写入功能由操作系统调用的地方。与GPU相似,即使DirectX,我的意思是DirectX必须调用驱动程序的特定功能,所以驱动程序必须写入与DX一起工作。我知道,WinAPI的许多功能都是独立工作的,但即使是“简单”窗口也必须写入帧缓冲区,使用MMIO来驱动程序指定的地址。我对吗?
所以,我预计Windows有内部功能,WinAPI的部分设计用于某些共同使用的东西。致电制造商设计的驱动程序。但这似乎并非完全正确,因为Windows无法通过Paralel端口进行通信。我的意思是,WinAPI没有使用串行端口的功能,但是有硬盘,GPU等功能。
但是现在出现了我非常失落的部分。所以,我认为Windows必须具有一些通过USB进行通信的内置功能,例如它可以处理USB闪存。那么,是否有任何WinAPI功能可以让用户通过该功能操作USB,或者当我想自己使用USB时,是否必须自己调用所需的USB驱动程序功能?所有你需要发送到USB控制器的设备地址和信息权利?我的意思是,我不需要写任何新的驱动程序,对吗?如果有这种情况,只需调用WinAPI函数,或直接调用原始USB驱动程序。这是否有任何意义?
嗨,谢谢,我还可以有一个问题吗?如果我做对了,HID实际上是与USB驱动程序通信的WinAPI部分,但USB驱动程序仍然必须具备向设备发送数据和向后发送数据的能力。那么我可以直接寻找USB驱动吗?我从来没有用过C标准库,WinAPI或.net类以外的东西。 – 2010-06-15 20:34:00
应该已经安装了知道如何处理所有事情的HID驱动程序。 (我的经验不是在Windows上,不幸的是,我做了一些Google搜索。第13章[这里](http://proyectosfie.com/html/usb/libro/)是关于Windows上的HID的。)我认为你不需要知道司机的任何事情,除了有一个礼物。 – sigfpe 2010-06-15 21:23:23
谢谢。我可以有更快的问题吗?比方说,我有USB摄像头,我希望它能与一些设计用于网络摄像头的WinAPI功能一起工作。 (即使没有,它的正义理论)所以,我会在WinPAI和一些通用USB驱动程序之间编写一些翻译程序(只需调用USB驱动程序的send()函数),还是必须在驱动程序中写入整个USB通信?我的意思是所有与USB控制器的通信? – 2010-06-16 09:11:55