使用LabVIEW开发STM32 USB HID驱动和上位机软件成功

原文地址::http://blog.csdn.net/madrabbit1987/article/details/67692466


一直以来,USB驱动和通信开发是比较复杂的事情,一般使用C++开发,需要熟悉windows系统下的驱动开发。 STM32是近年流行的ARM Cortex-M3芯片,已经集成了USB外设,所以硬件很简单,同时ST公司也提供了USB例程,其中也包括USB HID例程,但只有一个端点,数据只收不发,不是双向的USB通信。 最近以来,我一直在研究STM32的USB HID双向通信,并使用LabVIEW来开发USB HID驱动和上位机软件,已经成功,所以讲一下基本过程。 首先是USB HID驱动程序的开发。 默认来说,USB HID是免驱动的,windows系统已经有了USB HID驱动了,一般是调用usbhid.dll来通信。但这里我们不使用LabVIEW调用usbhid.dll来通信,而且是采用VISA来进行USB HID双向通信,所以我们要先用VISA开发USB HID驱动程序,就是inf文件。 我们要先安装VISA驱动程序,我安装的是NI-VISA4.6.2,注意是完整版的安装: 安装完成之后,重新启动电脑,打开“开始”,在“所有程序”的NI目录下,打开:driver wizard: 打开driver wizard之后,选择USB:  下一步是填写VID和PID,以及USB HID设备名、厂家、是否USB复合设备等,需要和STM32 下位机程序对应起来: 下一步是填写USB HID驱动名称,以及生成的inf文件的路径。驱动向导会同时生成XP和VISTA系统下的inf文件: 点下一步,会问您目的路径下的inf文件不存在,是否创建?我们点YES,进入安装选项页面:  我们选择第一项,安装生成的inf驱动程序。 最后,我们点击“finish”之后,STM32 USB HID驱动程序就创建完成了,并已经安装到电脑中了。 生成的inf文件有电脑的以下目录,同时有XP和VISTA系统的驱动,如下: 我们把STM32 USB HID下位机程序烧写到STM32中之后,插上USB线,电脑会提示新硬件,但XP系统默认安装的是系统自带的USB HID驱动,不是我们刚才生成的inf驱动程序,如下: 这时候我们开始更新驱动程序: 选择“从列表或指定位置安装(高级)”:  下一步,不要搜索,如下: 下一步,选择“STM32 USB HID”: 这样,我们就成功安装我们刚才生成的inf驱动程序了,如下:  最后一步,我们打开LabVIEW的MAX,可以看到,我们的STM32硬件已经被MAX识别出来了: 我们做的STM32硬件能够被LabVIEW的MAX识别出来,就成功了一大半了。 接下来就是LabVIEW上位机软件的编写了。 LabVIEW给STM32发送数据,可以使用“VISA写”控件。 但LabVIEW接收STM32发送过来的数据,不能用“VISA读”控件了,需要使用USB中断控件来读,同时要启用USB中断事件。 最后,LabVIEW运行界面如下: 总结:采用基于NI-VISA驱动的USB接口应用系统的设计非常容易,开发难度低,对开发者的要求不高;开发出的系统稳定可靠,即使对Windows编程不熟悉的人也可以开发出USB应用系统,它提供了另一种开发USB驱动应用程序的捷径。 另外我发现Bus Hound这个工具挺好的,可以查看USB通信的细节: 

原贴地址: http://bbs.elecfans.com/forum.php?mod=viewthread&tid=454527&extra=




  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值