21669|30

58

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

也谈USB开发:使用LabVIEW开发STM32 USB HID驱动和上位机软件成功 [复制链接]

 
一直以来,USB驱动和通信开发是比较复杂的事情,一般使用C++开发,需要熟悉windows系统下的驱动开发。
 
STM32是近年流行的ARM Cortex-M3芯片,已经集成了USB外设,所以硬件很简单,同时ST公司也提供了USB例程,其中也包括USB HID例程,但只有一个端点,数据只收不发,不是双向的USB通信。

最近以来,我一直在研究STM32的USB HID双向通信,并使用LabVIEW来开发USB HID驱动和上位机软件,已经成功,所以讲一下基本过程。
[ 本帖最后由 wyb4993 于 2011-6-26 19:51 编辑 ]
此帖出自stm32/stm8论坛

最新回复

DSC工具包已经包含了visa在里面了,已经装了DSC的话就不需要单独安装visa的了。不过还是得谢谢楼主分享,看这个不是为了别的什么目的,主要是学习一下思维。   详情 回复 发表于 2021-10-9 14:10

点评

您好LZ,请问下,我是用VB6.0做上位机,STM32做下位机。通过上位机VB发送一个指令,下位机(STM32)收到后,执行对应的命令,这是怎么实现的,例如STM32点亮8个LED发光二极管!从VB中发送出来 地址 &H00,&H01,&H  详情 回复 发表于 2012-8-23 14:21

赞赏

1

查看全部赞赏

点赞 关注(2)
 

回复
举报

58

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
首先是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系统的驱动,如下:

[ 本帖最后由 wyb4993 于 2011-6-26 19:50 编辑 ]
此帖出自stm32/stm8论坛
 
 

回复

58

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
我们把STM32 USB HID下位机程序烧写到STM32中之后,插上USB线,电脑会提示新硬件,但XP系统默认安装的是系统自带的USB HID驱动,不是我们刚才生成的inf驱动程序,如下:


这时候我们开始更新驱动程序:


选择“从列表或指定位置安装(高级)”:


下一步,不要搜索,如下:


下一步,选择“STM32 USB HID”:


这样,我们就成功安装我们刚才生成的inf驱动程序了,如下:


最后一步,我们打开LabVIEW的MAX,可以看到,我们的STM32硬件已经被MAX识别出来了:


我们做的STM32硬件能够被LabVIEW的MAX识别出来,就成功了一大半了。


[ 本帖最后由 wyb4993 于 2011-6-27 09:55 编辑 ]
此帖出自stm32/stm8论坛
 
 

回复

58

帖子

0

TA的资源

一粒金砂(高级)

4
 
接下来就是LabVIEW上位机软件的编写了。

LabVIEW给STM32发送数据,可以使用“VISA写”控件。

但LabVIEW接收STM32发送过来的数据,不能用“VISA读”控件了,需要使用USB中断控件来读,同时要启用USB中断事件。

最后,LabVIEW运行界面如下:




总结:采用基于NI-VISA驱动的USB接口应用系统的设计非常容易,开发难度低,对开发者的要求不高;开发出的系统稳定可靠,即使对Windows编程不熟悉的人也可以开发出USB应用系统,它提供了另一种开发USB驱动应用程序的捷径。


[ 本帖最后由 wyb4993 于 2011-6-27 08:19 编辑 ]
此帖出自stm32/stm8论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(高级)

5
 
另外我发现Bus Hound这个工具挺好的,可以查看USB通信的细节:



此帖出自stm32/stm8论坛
 
 
 

回复

3836

帖子

19

TA的资源

纯净的硅(中级)

6
 
学习了 :) USB开发是个比较麻烦的东东
此帖出自stm32/stm8论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

7
 
此帖出自stm32/stm8论坛
 
 
 

回复

978

帖子

0

TA的资源

一粒金砂(高级)

8
 
好东西啊好东西
此帖出自stm32/stm8论坛
 
 
 

回复

1万

帖子

16

TA的资源

版主

9
 

好东东,顶一下

此帖出自stm32/stm8论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

回复

173

帖子

0

TA的资源

一粒金砂(初级)

10
 
mark!!!
此帖出自stm32/stm8论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

11
 
有没有stm32的代码,参考一下
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

12
 
求上位机读写示例或者上位机代码。谢谢楼主。
此帖出自stm32/stm8论坛
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

13
 
学习一下了。。。。。。。。。。
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(中级)

14
 
好东西 ,收了。
此帖出自stm32/stm8论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

15
 

回复 楼主 wyb4993 的帖子

您好LZ,请问下,我是用VB6.0做上位机,STM32做下位机。通过上位机VB发送一个指令,下位机(STM32)收到后,执行对应的命令,这是怎么实现的,例如STM32点亮8个LED发光二极管!从VB中发送出来

地址 &H00,&H01,&H02,&H03,&H04,&H05,&H06,&H07
电平 1        1        1      1         1       1       1        1
对应下位机
灯的状况  
LED0  LED1  LED2   LED3   LED4   LED5   LED6   LED7
亮     亮   亮    亮     亮    亮    亮     亮
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 
我最近也在看usb,大家一起学习吧
此帖出自stm32/stm8论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

17
 

赞一个

:carnation:
此帖出自stm32/stm8论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

18
 
此帖出自stm32/stm8论坛
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

19
 
学习了,谢谢啦
此帖出自stm32/stm8论坛
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(中级)

20
 
能给个具体程序资料吗?
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表