1. 请教一下,可以在电脑Ubuntu上写C语言程序,然后通过读取usb的引脚从而控制电子元件吗
可以,仅记住,linux的一切都是文件,对文件的操作也就是对设备的操作。
比如我接上一个鼠标,目录下有对应设备文件(一般是在/dev/input/mouse1),我可以对其进行IO操作,从而检测鼠标位移,点击等。
2. windows电脑无法识别usb设备怎么办
一、在排除USB存储设备本身故障后,出现无法识别现象的原因一般是由以下几个方面所造成的:
一是USB接口电压不足。这种故障通常存在于移动硬盘身上,当把移动硬盘接在前置USB口上时就有可能发生系统无法识别出设备的故障,原因是移动硬盘
功率比较大要求电压相对比较严格,前置的USB接口是通过线缆连接到机箱上的,在传输时便会消耗大掉的电压,因此,在使用移动硬盘时,要注意尽量接在后置
主板自带的USB接口上,否则也可以通过外接的电源适配器来提供单独供电。当然,在一些老的主板上,必须要使用独立供电才能供正常使用USB设备。
二是前置USB线接错。当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会
使得USB设备烧毁,严重还会烧毁主板。三是主板和系统的兼容性问题。这类故障中最着名的就是NF2主板与USB的兼容性问题。假如你是在NF2的主板上
碰到这个问题的话,则可以先安装最新的nForce2专用USB2.0驱动和补丁、最新的主板补丁和操作系统补丁,还是不行的话尝试着刷新一下主板的
BIOS一般都能解决。四是系统或BIOS问题。当你在BIOS或操作系统中禁用了USB时就会发生USB设备无法在系统中识别。解决方法是开启与USB
设备相关的选项。
二、U盘插入电脑,提示“无法识别的设备”故障
维修思路:对于此现象,首先的一点说明U盘的电路基本正常,而只是跟电脑通信方面有故障,而对于通信方面有以下几点要检查:
(1)U盘接口电路,此电路没有什么特别元件就是两根数据线D+
D-,所以在检查此电路时只要测量数据线到主控之间的线路是否正常即可,一般都在数据线与主控电路之间会串接两个小阻值的电阻,以起到保护的作用,所以要检查这两个电阻的阻值是否正常。
(2)时钟电路,因U盘与电脑进行通信要在一定的频率下进行,如果U盘的工作频率和电脑不能同步,那么系统就会认为这是一个“无法识别的设备”了。这时就要换晶振了。而实际维修中真的有很多晶振损坏的实例!
(3)主控,如果上述两点检查都正常,那就可以判断主控损坏了。
三、Windows
XP操作系统下,系统提示已经找到新的硬件并且硬件正常被安装可以使用,但无法找到闪存盘的盘符,且闪存盘的灯在不停的闪亮
故障分析:这种故障一般是由于非法操作所造成的,认为闪存盘是可以支持热插拔的,于是在没有正确删除移动设备的情况下,直接进行了插拔操作,不正确的操作是导致闪存消失的根本原因。
故障排除:进入Windows
98系统,用鼠标右击“我的电脑”,选择属性进入“设备管理器”,在“磁盘驱动器”下看到比原来多了一个“Netac
Onlydisk”的设备,双击进入,在弹出的新窗口中看到了四个新的选项:“断开”、“可删除”、“同步数据传输”和“Int
13单元”,仔细观察发现“可删除”前面的选项是没有打勾的。在“可删除”选项前的空格内打入勾并单击确定后重新启动电脑。
故障小结:此故障依然是由于误操作使用闪存盘导致的问题,可以看出由于不正常使用闪存盘而导致故障出现的机率是非常大的,因此大家在使用中一定要遵循规格,以保证闪存的正常使用。
四、可以认U盘,但打开时提示“磁盘还没有格式化”但系统又无法格式化,或提示“请插入磁盘”,打开U盘里面都是乱码、容量与本身不相符等。
维修思路:对于此现象,可以判断U盘本身硬件没有太大问题,只是软件问题而以了。
解决方法:找到主控方案的修复工具搞一下就可以了。这个就要大家自己看U盘的主控是什么方案的来决定了。
U盘故障大概也就是这些主要问题了。而对于无法写文件、不存储等现象,一般都是FLASH性能不良或有坏块而引起的。大家看完之后有没有一个清晰的思路了呢。随便说明一下,U盘不同于MP3,他不存在固件之说,但有些厂家把自己的软件放到里面,低格一下就会没有的。
告诉大家一个非常简单的方法,就是在碰到主控损坏或找不到相应的修复工具时,可以用U盘套件来重新搞一个新的U盘,方法就是把故障机的FLASH拆下
来,放到新的PCB板上就可以了。U盘套件包括(PCB带主控(分1.1和2.0之分)及外壳一套),维修起来非常简单,做数据恢复就更方便了
3. VB编写与USB采集卡通信程序
用vb实现USB接口设备数据传送
本文介绍了USB设备中的人机接口,HID设备与主机通信的要点与方式。详细讲解了在VB中调用相关APl函数的方法,并介绍了一种基于USB总线的数据采集系统的设计方案及开发方法,采用的是USB2.0协议。该系统主要是从设备的角度描述了人机接口设备通信,以及用来与主机进行数据交换的报告格式。应用程序可以使用任何能访问API函数的编程语言,调用窗口函数并与USB设备实现通信。掌握USB设备与计算机通讯规程,实现USB设备的自动识别。为数据采集系统与计算机之间的通讯开辟了新的道路。
这几年,随着大量支持USB的个人电脑的普及,USB逐步成为PC机的标准接口已经是大势所趋了。在主机(host)端,最新推出的PC机几乎100%支持USB;而在外设(device)端,使用USB接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等。
二、Windows系统选择USB驱动的过程
当Windows检测到一个新的USB外设时,必须做的一件事情是找出应该使用哪个设备驱动应用软件来与设备通信,然后载入选定的驱动。这是Windows设备管理器的工作,设备管理器使用类、设备安装器和INF文件来找到这个匹配。
INF文件是一个文本文件,其中包括有利于Windows识别设备的信息。文件告诉Win-dows要使用什么驱动、注册表里存储什么信息等。
三、Visual Basic与USB设备通信的设计与实现
使用VB语言访问串行通信接口的方法。Windows在底层实现了和串行通信有关的很多复杂的工作,给程序员提供了一个相对比较容易掌握的编程接口。例如 Windows自动将所有接收到的字符放到接收缓冲区中,而所有发送的字符也都进入发送缓冲区。只要程序空闲,程序就可以读取接收缓冲区获得数据,或者向发送缓冲区发送数据。
1.主机寻找USB设备的过程
第一个被Windows支持的USB外围设备类是人机接口设备。HID是 HUMANINTER-FACE DEVICE人机接口设备的英文缩写。是指直接和人进行互动的设备。如鼠标、键盘等。运行在WINDOWS98或其他更高的版本的操作系统的PC机,系统除了提供通用的USB设备的底层驱动以外,还单独提供了一些HID设备的完整驱动,应用程序可以很容易地与操作系统内部的HID通讯。这样使得符合HID 类的USB设备很容易开发与运行。也就是说,我们如果想实现一个USB的HID类设备,是不需要在Windows下开发自己的驱动程序的。HID不一定要是标准的外设类型,唯一的要求是交换的数据存储在报文的结构内,设备固件必须支持报文的格式。任何工作在该限制之内的设备都可以成为一个HID,例如温度计、电压计、读卡机等。
2.VB中调用API函数的过程
(1)声明:下面是一个Visual Basic使用API函数WriteFile的声明:可以利用这个涵数来写数据到HID(也可以是文件和其他设备)中。Public Declare Function WriteFile Lib_“kernel32”_
(By Val hFile As Long,_ByReflpBuffer As Byte,_By Val nNumberOfBytes To Write As Long,_ByRef lpNumberOfBytesWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)识别HID过程Public Declare Function HidD_GetHidGuid Lib_“hid.dll”_(ByRefHidGuid As GUID)As Long
3.Visual Basic数据过程
(1)读数据到设备
Public Declare Function WriteFile Lib“kernel32”_(ByVal hFile As Long,_ByReflpBuffer As Byte_ByValnNumberOfBytesToWrite As Long,_ByRefnNumberOfBytcsWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)从设备读取数据Declare Function ReadFile Lib_“kernel32”_(ByValhFile As Long,_ByReflpBuffer As Byte,_ByValnNumberOfBytesToRead As Long,_ByReflpNumberOfBytesRead As Long,_lpOvefiapped As Long)_As Long
读写报文缓冲区时,第一个字节是ReportID,其后是报文数据。报文缓冲区默认是八个报文,并且环状排列。因为数据读写是发生在主机轮训设备的时候,并不是由设备触发产生硬件中断,所以如不能及时读写,新的数据会覆盖旧的数据,导致报文丢失。当数据读写频繁时应使用特征报文,它可以保证当报文数据没有变化时,HID不会传送新的数据。
当不再使用SetupDiGetClassDevs时,应用上述函数释放其返回的数组hDevInfo。还有需要使用函数CloseHandle,它是一个非常通用的API函数,可以用于关闭通信。
四、结论
实际编程表明使用VB开发HID类USB设备是一条非常方便快捷的途径,不需要编写底层驱动,涉及到的API函数多是大家熟知的通用函数。但同时还必须注意到一点,HID类只支持控制传输与中断传输。控制传输通常不用于数据的传输,而中断传输的特点是保证最大延迟,也就是事务之间的时间。它没有保证传输速率,而是保证每笔事务之间的时间不会超过最大延时。所以中断传输适用于数据量不太大,但需要及时快速地传送,实时性要求较高的场合。对于数据量比较大的传输,是不宜使用中断传输的。因此HID设备应用的场合也必须根据该特点灵活使用。
4. 电脑无法识别usb设备怎么办如何解决
电脑无法识别USB设备原因:缺少USB驱动程序。
参考工具:
1.一台Windows10系统笔记本电脑。
2.一张含有Boot Camp支持文件(驱动程序整合包)的U盘。
解决方法如下:
1.插入含有Windows10驱动程序的U盘,以管理员身份运行Setup.exe启动安装向导。
5. 电脑无法识别USB设备怎么办
windows 7操作系统中若无法识别USB设备,可参考以下步骤进行设置:
进入"设备管理器" --> "通用串行总线控制器" --> "USB ROOT HUB"右键属性 --> "电源管理" --> 取消"允许计算机关闭这个设备以节省电源"的选择,确定即可。(建议将所有的"USB ROOT HUB"都进行如上操作)
6. 怎么解决电脑无法识别usb设备
是你的USB驱动程序未安装好或者是你后期清理C盘时把USB集成的各类驱动文件删除所致,最简单的方法是,到“控制面板”中的“设备管理器”中卸载掉USB相关的驱动,用驱动精灵或者其它驱动管理软件重新安装就好了。希望对你有所帮助。
7. 电脑显示无法识别的USB设备怎么办
点击任务栏右下角的“通知”,查看有关该错误的详细信息及“推荐”解决方法。如图所示:
接下来尝试重新连接设备,并更换连接数据线或USB接口来尝试解决无法正常识别的问题。
对于手机无法正常连接电脑的情况,建议借助第三方软件程序来安装手机驱动,如刷机精灵程序,在确保正常连接网络的情况下,运行刷机精灵进行连接。
此时刷机精灵将根据当前手机类型自动从网上下载与手机类型相匹配的驱动程序并自动完成安装。
对于已拥有手机驱动程序的用户,可以自行安装手机驱动:右击“计算机”,从弹出的菜单中选择“管理”项。
在打开的“计算机管理”窗口中,切换到“设置管理器”项,右击“未知设备”,选择“更新驱动程序”项。
从弹出的窗口中,点击“浏览计算机以查找驱动程序”文件项,来定位到本地磁盘中的驱动程序并完成安装操作。
8. 如何使用C语言编程读取从电脑usb接口的信息。
可以打开USB接口上的设备,或者打开USB控制器,那涉及到windows的驱动访问。
一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。
比如:
HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...); //指定以异步方式打开
BYTE bBuffer[100];
OVERLAPPED o = { 0 };
o.Offset = 345;
BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, &o); // bReadDone 指定I/O请求是不是以同步方式打开
DWORD dwError = GetLastError();
if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //异步方式打开
// The I/O is being performed asynchronously; wait for it to complete
WaitForSingleObject(hFile, INFINITE);
bReadDone = TRUE;
}
if (bReadDone) {
// o.Internal contains the I/O error
// o.InternalHigh contains the number of bytes transferred
// bBuffer contains the read data
} else {
// An error occurred; see dwError
}
9. 鼠标插电脑显示无法识别的usb设备
以Windows10为例,鼠标连接电脑usb无法识别的解决方法如下:
1、打开电脑后,找到此电脑,鼠标右键单击,然后选择“属性”。
2、然后在控制面板界面选择“设置管理器”。
3、在设置管理器界面选择“通用串行总线控制器”,选择该项目下的所有选项,右击鼠标,点击“卸载。
4、卸载完成后,点击“扫描检测硬件改动”图标,然后系统将自动安装卸载的驱动,安装完成就可以了。
鼠标是计算机的一种外接输入设备,也是计算机显示系统纵横坐标定位的指示器,因形似老鼠而得名。鼠标的使用是为了使计算机的操作更加简便快捷,来代替键盘那繁琐的指令。
驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。