如何添加libusb的环境变量

如何添加libusb的环境变量,第1张

用驱动精灵重装驱动程序试试。不行的话,直接用个好用的系统盘重装系统就行了,这样就可以全程自动、顺利解决win8系统驱动程序自动安装的问题了。用u盘或者硬盘这些都是可以的,且安装速度非常快。方法如下: 1、U盘安装:用ultraiso软件,打开...

LIBUSB是一款简单好用的USB通讯开发库,一般HID设备用该库通讯能大大降低开发周期,使用如下,首先需要为设备安装驱动

在libusb的bin目录下有一个inf_wirzed.exe的文件,该文件是生成驱动所用,具体步骤可以网上百度,很是傻瓜式 *** 作,安装好驱动之后就可以使用其通讯函数了,

安装好驱动之后的情况如下

使用visual studio开发,将lib_msvc目录下的libusb.lib文件添加到工程目录并将lusb0_usb.h文件加入工程,如下

之后在MFC工程中如下 *** 作

OnInitDialog方法中调用usb_init函数,这是初始化函数库的,每个工程需要而且仅仅需要初始化一次.

查找系统中全部USB的方法如下

usb_find_busses()

usb_find_devices()//重新寻找设备

for (bus = usb_get_busses()busbus = bus->next)

{

for (dev = bus->devicesdevdev = dev->next)

{

usbCount++

deviceName.Empty()

handle = usb_open(dev)

usb_get_string_simple(handle,dev->descriptor.iProduct,nameBuffer,128)

usb_close(handle)

pidBuffer[usbCount-1] = dev->descriptor.idProduct//枚举所有设备

vidBuffer[usbCount-1] = dev->descriptor.idVendor

pvnBuffer[usbCount-1] = dev->descriptor.bcdDevice

deviceName.AppendFormat("%s",nameBuffer)

((CComboBox*)GetDlgItem(IDC_COMBO_USB_DEVICE_ENMU))->AddString(deviceName)

}

}

打开usb设备的方法如下

//现在遍历全部设备,找到对应PID vid的设备打开

usb_find_busses()

usb_find_devices()//重新寻找设备

for (bus = usb_get_busses()busbus = bus->next)

{

for (dev = bus->devicesdevdev = dev->next)

{

if(dev->descriptor.idProduct == myPid &&dev->descriptor.idVendor)

{

//PID VID相同

usb_handle = usb_open(dev)

}

}

}

发送数据的方法

char sendBuffer[64] = {0}

CString sendString

GetDlgItem(IDC_EDIT_USB_SEND_MESSAGE)->GetWindowText(sendString)

for(int i = 0i <64i++)

{

if(i >= sendString.GetLength())sendBuffer[i] = 0

else

{

sendBuffer[i] = sendString.GetAt(i)

}

}

usb_claim_interface(usb_handle, 0)//默认设备

usb_interrupt_write(usb_handle,0x01,sendBuffer,64,100)

usb_release_interface(usb_handle, 0)

接收数据的方法

char receiveBuffer[64] = {0}

CString receiveString

int recvCount = 0

usb_claim_interface(usb_handle, 0)//默认设备

recvCount = usb_interrupt_read(usb_handle,0x81,receiveBuffer,64,100)

usb_release_interface(usb_handle, 0)

if(recvCount >0)

{

GetDlgItem(IDC_EDIT_USB_RECV_SHOW)->GetWindowText(receiveString)

for(int i = 0i <recvCounti++)

{

receiveString.AppendChar(receiveBuffer[i])

}

GetDlgItem(IDC_EDIT_USB_RECV_SHOW)->SetWindowText(receiveString)

每次发送和接手之前需要调用usb_claim_interface将函数库和 *** 作系统关联起来

有了这些基本方法,通讯应该就不成问题了

详细代码见链接

http://download.csdn.net/detail/dengrengong/8523587

使用LIBUSB实现和自定义通讯设备通讯--MFC代码在末尾的更多相关文章

IOT设备通讯,MQTT物联网协议,MQTTnet

一.IOT设备的特性 硬件能力差(存储能力基本只有几MB,CPU频率低连使用HTTP请求都很奢侈) 系统千差万别(Brillo,mbedOS,RIOT等) 如使用电池供电,电量消耗敏感 如果是小设备, ...

厂商自定义USB设备固件程序及特性

通过前面的学习,大家应该对USB固件程序结构有了比较深的认识,现在再来详细说说固件里决定设备识别成厂商自定义USB设备的地方有哪些,或者说厂商自定义USB设备的固件特性有哪些. 之前不止一次说过学习U ...

厂商自定义USB设备类概述

USB协会将常用具有相同/相似功能的设备归为一类,并制定了相关的设备类规范,这样就能保障只要依照同样的规范标准,即使不同的厂商开发的USB设备也可以使用同样的驱动程序,而且 *** 作系统中无须为每种设备提供 ...

JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制

JAVA之旅(十四)--静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 JAVA之旅,一路有你,加油! 一.静态同步函数的锁是clas ...

Windows Phone:自定义字体在xaml和代码中使用

最近,我的小应用<认字>更新了一个能发声的版本,朋友对Speech做读音没有兴趣,反而对其中使用的楷体文字表示了兴趣,也许Speech的文章比较多,这次我对这个自定义字体在xaml和代码中 ...

C#自定义FTP访问类的代码

如下资料是关于C#自定义FTP访问类的代码,应该对各朋友有帮助. using Systemusing System.Collections.Genericusing System.Text...

springboot扫描自定义的servlet和filter代码详解_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 这几天使用spring boot编写公司一个应用,在编写了一个filter,用于指定编码的filter,如下: /** ...

设备通讯——RS232

RS232的接口有两种--一种公头.一种母头,两种头的引脚是有区别的 MAX232电路图: 注意:串口通讯需要交叉接线.

安卓MonkeyRunner源码分析之与Android设备通讯方式

如前文<谁动了我的截图?--Monkeyrunner takeSnapshot方法源码跟踪分析>所述,本文主要会尝试描述android的自动化测试框架MonkeyRunner究竟是如何和目 ...

随机推荐

织梦DEDECMS更新6月7日补丁后出现版权链接的删除办法

说最近网站底部多出了一个Power by DedeCms的超链接版权信息,但是该网友最近只是升级了0607更新补丁,其它的源代码并没有改动,而以前的文章页面并没有,看来是这次更新dedecms后才被加 ...

Converting between IEEE 754 and Float (Format related

The float can be converted to well known single-precision IEEE 754 number, why 754? It's the standar ...

HDU2199,HDU2899,HDU1969,HDU2141--(简单二分)

二分是一种很有效的减少时间开销的策略, 我觉得单列出二分专题有些不太合理, 二分应该作为一中优化方法来考虑 这几道题都是简单的使用了二分方法优化, 二分虽然看似很简单, 但一不注意就会犯错. 在写二分 ...

java 随机流

Example10_8.java import java.io.*public class Example10_8 { public static void main(String args[]) ...

List<Map>去重排序

数据格式 [ { "id":"d3e8a9d6-e4c6-4dd8-a94f-07733d3c1b59", "parentId":" ...

MQ日常维护 *** 作手册

假设队列管理器为QMgrName,以下所有使用QMgrName的地方您都可以替换成您维护的mq队列管理器名称. 一.MQ的启动与停止 用root用户启/停需要root用户包含在mqm组中. 1.MQ的 ...

jquery控制audio的播放与暂停

<audio id="audio" src='music.mp3'></audio><script type="type/javascri ...

apt

今天单元测试看到巨长字符串被加了很多引号,想起以前可以用跳脱符断行,试了不行,google说java7可以,我 *** . https://github.com/benelog/multiline/wiki/ ...

C# 经典入门12章-使用泛型类型-2

关于jdk环境变量配置成了1.6.0_39 32位jdk 的路径 cmd中java -version却还是显示 64位或者其他jdk 路径的解决方法

其实是c盘或者其他盘的 jdk 安装的太多了,把其他的都卸载掉就行了

前言

首先,这个教程在仅使用附带的光盘镜像文件里的资料的情况下,所搭建的嵌入式 ARM 开发环境可以满足 ARM 核为 ARM920T 及 CORTEX-A8 的嵌入式开发需求。

其次,搭建针对处理器为 ARM920T 的开发环境步骤如下:

WINDOWS 系统:

1、 用 WINRAR 或 7zip 打开镜像文件 Linux-dev.iso,将/WIN32/Daemon_Tools_4.46.1.328.exe 拖出来,

安装后运行;

2、 使用 Daemon 加载镜像文件 Linux-dev.iso 后,找到并双击/vmplayer/VMware-player-5.0.1-894247.exe 运行,安装完成;

3、 将/VMware-linux-tools.iso 复制到任何地方,譬如 D:\Virtual Machines\ 文件夹下;4、 将文件夹/Ubuntu 复制到电脑的任何地方,譬如 D:\Virtual Machines\ 文件夹下;

5、 打开 VMware Player,这是一个免费的软件,所以不需考虑不能使用的情况,更不需破解。效果图如下:

嵌入式开发环境的搭建

点击”Open a Virtual Machine”,找到刚才复制的 Ubuntu 文件夹,选中 Ubuntu.vmx 这个文件:

嵌入式开发环境的搭建

后点击打开;

6、 点击”Edit virtual machine settings”,这里需要注意的是,若你的电脑 CPU 是单核的,需将”Processors”由 2 设置为 1,否则,不能运行。选择”CD/DVD (IDE)”,之后点击右边的”Browse…”,找到并选择刚才复制的 VMware-linux-tools.iso,之后点击”Options”进入另一个设置界面;

7、 选择第三个”Shared Folders”,在右边将其设置为”Always enabled”,再点击下面的”Add…”,选择一个在硬盘上新建的空文件夹,譬如 D:\Virtual Machines\shared 文件夹,点击”Next》”,之后点击”Enable this share”,最后在设置主界面点击”OK”完成设置;

8、 将虚拟光驱加载的光盘中 Linux 文件夹中的所有文件都复制到上一步新建的空文件夹,譬如

D:\Virtual Machines\shared 文件夹下;

9、 在 VMware Player 下点击图标 以运行虚拟机 Linux,启动后可以看到桌面上有一个光盘的图标;

10、 在 Linux 桌面右键后选择”Open in terminal”,之后切换到/tmp 目录:cd /tmp ;11、 执行命令 tar zxf /media/cdrom0/VMwareTools-9.2.2-893683.tar.gz ,等待约一分钟后运行完毕;

12、 切换目录:cd 。/vmware-tools-distrib/ ;

13、 执行命令:sudo 。/vmare-install.pl ,用户”user”的密码为 redeem2012 ;

14、 下面出现很多问题,[yes]或[no],那么就可以一直点击键盘 ENTER 键选择默认设置,直至安装完成;15、 人,活着,要有耐心——这个过程稍长,显示最后两行为”Enjoy, --the WMware team”时就安装完成了;

16、 以上几个步骤如下:

嵌入式开发环境的搭建

17、 执行命令:sudo reboot 以重启;

18、 启动后在桌面右键选择”Open in terminal”,输入命令:cd /mnt/hgfs/shared ,当然若之前选择的空享空文件夹名称与 shared 不一样,可能不是这个目录,唉,管不了这么多了;19、 查看目当下文件如下:

嵌入式开发环境的搭建

20、 安装 libusb-1.0.9.tar.bz2,依次输入以下命令:tar jxf libusb-1.0.9.tar.bz2 、

cd libusb-1.0.9 、 。/configure --prefix=/usr 、 make 、 sudo make install ,注意最后一步需要输入密码 redeem2012,完了之后返回原目录: cd 。。/ ;21、 安装 readline-6.2.tar.gz,依次输入以下命令:tar zxf readline-6.2.tar.gz 、 cd readline-6.2 、。/configure --prefix=/usr 、 make 、 sudo make install ,完了之后返回原目录:cd 。。/ ;

22、 安装交叉编译器:sudo tar arm-linux-gcc-3.4.5.tar.bz2 -C /home ;

23、 更改环境变量:gedit /home/user/.profile ,在最后一行添加这么一句:export PATH=$PATH:/home/user/gcc-3.4.5-glibc-2.3.6/bin ,保存后退出

24、 切换回用户主目录:cd ~ ;

25、 执行命令:tar jxf /mnt/hgfs/shared/JLink_Linux_V422.tar.bz2 ;

26、 依次执行以下命令:cd JLink_Linux_V422/ 、 sudo cp libjlinkarm.so.* /usr/lib ,现在就可以

运行 JLink 了: sudo 。/JLinkExe ,但要注意这么一点:由于现在运行的是 windows 系统下的虚拟机, Linux *** 作系统无法访问到 JLink,那么就需要按下图所示选择将连接到电脑的 JLink 直接送给虚拟机中运行的 Linux。我没有 JLink,所以下图中没有,你需要自己选择硬件并点击箭头后再点击”connect”:

嵌入式开发环境的搭建

另外,下面需要安装 minicom,也需要按上图将串口连接到 Linux *** 作系统;

27、 这一步安装minicom。将虚拟机文件夹 Ubuntu 下的 minicom_2.3-1ubuntu2_i386.deb 复制到shared文件下,之后执行命令:sudo dpkg --install /mnt/hgfs/shared/ minicom_2.3-1ubuntu2_i386.deb

到这一步,windows 系统下的嵌入式 ARM 开发环境搭建完成了。重启一下更好。

至于 Linux 系统下的配置,这要复杂得多,因为系统情况完全不一样,因而,这里不再给出,当然,所有的软件也跟上面的完全一样。

另外,minicom、JLink 的配置和使用,这里就不说了,自己到网上去找吧,若搞不好,就当自虐了。反正我已经送佛到西了,整个过程不需要仍何网络,不需要上网

所附的光盘镜像文件中还有一些 windows 下的软件,如 SecureCRT、arm-none-linux-gcc 等,这些也能用到,只不过我没那个心情讲更多了,以上的配置已经完全足够了。

网络是个好东西,没有网络,就没有 LINUX,也没有快速学习的条件。所以——现在,自学去吧。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11737573.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存