嵌入式以太网社区

?找回密码
?立即注册
搜索
365bet官网足球官方开户网利用Python来控制STM32365bet官网足球官方开户网365bet官网足球官方开户网
STM32高速USB数据传输方案,支持多系统!STM32全速USB数据传输方案,支持多系统!Flash高速烧写方案STM32 HID IAP/Bootloader升级方案
查看: 84621|bet365体-在线体育投注_365体育投注地址_365体育投注登录: 647
打印 上一主题 下一主题

STM32高级教程之USB HID双向数据传输

? [复制链接]

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
跳转到指定楼层
楼主
发表于 2014-10-8 18:23:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 飞鸿踏雪 于 2015-8-18 18:38 编辑

程序功能:
1,将STM32的USB枚举为HID设备。
2,STM32使用3个端点,端点0用于枚举用,端点1和2用于数据的发送和接收。
3,端点长度为64,也就是单次最多可以传输64个字节数据。
4,STM32获取上位机下发的数据并将该数据通过USB原样返回,同时将数据打印输出。
5,上位机程序通过调用windows的API实现对HID设备的读写控制。

原理图:

说明:实际测试的时候不用这么复杂的电路,接好PA11和PA12即可,当然在PA12引脚上需要一个上拉电阻,其他电路都可以省略。

HID枚举成功:

说明:枚举成功后会自动安装HID驱动,无需单独安装。

上位机程序运行效果图:

说明:上位机程序是在VS2010环境下写的,不过可以根据自己需求移植到其他环境中。

单片机运行输出:

说明:单片机端采用超级终端输出相关信息,使用的USART1串口,也就是PA9和PA10两个引脚。

Bus Hound抓取数据截图:

说明:Bus Hound是一个很不错的数据抓包工具,调试USB程序相当有用。

部分程序源码:
STM32的报告描述符:
[C] 纯文本查看 复制代码
const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] = 
{ 
        0x05, 0x8c, /* USAGE_PAGE (ST Page) */ 
        0x09, 0x01, /* USAGE (Demo Kit) */ 
        0xa1, 0x01, /* COLLECTION (Application) */ 
        
        // The Input report 
        0x09,0x03, // USAGE ID - Vendor defined 
        0x15,0x00, // LOGICAL_MINIMUM (0) 
        0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255) 
        0x75,0x08, // REPORT_SIZE (8bit) 
        0x95,0x40, // REPORT_COUNT (64Byte) 
        0x81,0x02, // INPUT (Data,Var,Abs) 

        // The Output report 
        0x09,0x04, // USAGE ID - Vendor defined 
        0x15,0x00, // LOGICAL_MINIMUM (0) 
        0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255) 
        0x75,0x08, // REPORT_SIZE (8bit) 
        0x95,0x40, // REPORT_COUNT (64Byte) 
        0x91,0x02, // OUTPUT (Data,Var,Abs) 

        0xc0 /* END_COLLECTION */ 
}; /* CustomHID_ReportDescriptor */ 


上位机测试程序:
[C] 纯文本查看 复制代码
/**
  * @brief  发送数据后读取数据 
  * @param  None
  * @retval None
  */
void HIDSampleFunc(void)   
{       
        HANDLE       hDev;       
        BYTE         recvDataBuf[1024],reportBuf[1024];;                   
        DWORD        bytes;       
        hDev = OpenMyHIDDevice(0); // 打开设备,不使用重叠(异步)方式 ;      
        if (hDev == INVALID_HANDLE_VALUE){           
                printf("INVALID_HANDLE_VALUE\n");
                return;  
        }
        reportBuf[0] = 0; // 输出报告的报告 ID 是 0      
        for(int i=0;i


源码下载:
STM32F103程序源码下载: stm32_usb_hid.zip (2.62 MB, 下载次数: 2866, 售价: 20 金币)
STM32F105/107程序源码下载: usb_hid.rar (2.16 MB, 下载次数: 801, 售价: 20 金币)
HID上位机程序下载(VS2010): STM32_HID_PC_Driver.zip (259.02 KB, 下载次数: 1342, 售价: 10 金币)
HID上位机程序下载(VS2008): PC_HID.zip (133.6 KB, 下载次数: 732, 售价: 10 金币)

USB开发相关资料下载:
STM32_USB-FS-Device_Lib_V3.0.1.zip (822.59 KB, 下载次数: 3855)
STM32_usb固件库.pdf (978.66 KB, 下载次数: 1742)
STM32F10xxx USB-FS-Device firmware library.pdf (1.27 MB, 下载次数: 1437)
STM32F10xxx USB开发工具包.pdf (978.66 KB, 下载次数: 1902)
USB2.0技术规范(中文).pdf (2.59 MB, 下载次数: 2127)
Windows主机端与自定义USB_HID设备通信详解.pdf (259.12 KB, 下载次数: 2176)
基于STM32的USB程序开发笔记.pdf (2.42 MB, 下载次数: 2328)
深入解析STM32_USB-FS-Device_Lib库.pdf (697.35 KB, 下载次数: 1918)


人生到处知何似,应似飞鸿踏雪泥。

8

帖子

0

主题

205

金币

中级会员

Rank: 3Rank: 3

积分
223
推荐
发表于 2015-4-25 16:40:56 | 只看该作者
谢谢分享,很好的资料,看了您的几篇USB的例程文章,都很不错,我电脑上没安装VS2008及以上版本,把这篇文章的vs2010里面的代码移植到VC6的时候,出现了图片中的错误。 应该是测试函数中hDev = OpenMyHIDDevice(0);这里引起的,但是不知道怎么排除。

QQ截图20150425163926.jpg (42.36 KB, 下载次数: 216)

QQ截图20150425163926.jpg

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
推荐
?楼主| 发表于 2016-12-19 15:57:18 | 只看该作者
xts 发表于 2016-12-19 13:03
第一个字节就是0X00了,连上容易,要发送数据好难啊。也许是我用了00的Overlaped发送结构了,再改改试试 ...

报告描述符是14字节,你得发15字节才行,第一字节为报告ID
人生到处知何似,应似飞鸿踏雪泥。

14

帖子

0

主题

25

金币

新手上路

Rank: 1

积分
41
推荐
发表于 2015-8-18 12:14:07 | 只看该作者
楼主??HID 能实现多块的的传输?

1

帖子

0

主题

3

金币

新手上路

Rank: 1

积分
4
5#
发表于 2014-10-8 19:35:12 | 只看该作者
HAODONGXIHAODONGHAOhao好东西。我下了 我顶~??下了不顶,什么心态~~~

56

帖子

3

主题

66

金币

注册会员

Rank: 2

积分
156
6#
发表于 2014-10-16 13:37:52 | 只看该作者
这个实例很棒
打破了双机调试格局
我也有做过这个设备的

26

帖子

0

主题

195

金币

新手上路

Rank: 1

积分
221
7#
发表于 2014-10-16 16:02:02 | 只看该作者
楼主的资料很权威

56

帖子

3

主题

66

金币

注册会员

Rank: 2

积分
156
8#
发表于 2014-10-31 16:12:11 | 只看该作者
那是必须权威的

8

帖子

1

主题

67

金币

注册会员

Rank: 2

积分
75
9#
发表于 2014-11-27 15:02:30 | 只看该作者
谢谢版主,学习中

1

帖子

0

主题

17

金币

新手上路

Rank: 1

积分
18
10#
发表于 2014-12-5 10:34:27 | 只看该作者
好东西呀,顶起来

4

帖子

0

主题

14

金币

新手上路

Rank: 1

积分
18
11#
发表于 2014-12-5 15:58:19 | 只看该作者
看看,资料真不错。

11

帖子

0

主题

88

金币

注册会员

Rank: 2

积分
99
12#
发表于 2014-12-6 00:51:03 | 只看该作者
Good data;Good job !

1

帖子

0

主题

3

金币

新手上路

Rank: 1

积分
4
13#
发表于 2014-12-13 22:40:31 | 只看该作者
好人!一定要好好学习USB,不然对不起楼主这么宝贵的资料啊。

2

帖子

0

主题

23

金币

新手上路

Rank: 1

积分
25
14#
发表于 2015-4-3 15:46:27 | 只看该作者
谢谢楼主。。。很好的资料

1

帖子

0

主题

28

金币

新手上路

Rank: 1

积分
29
15#
发表于 2015-4-16 09:46:25 | 只看该作者
谢谢楼主??结了燃眉之急

2

帖子

0

主题

9

金币

新手上路

Rank: 1

积分
11
16#
发表于 2015-4-22 16:30:12 | 只看该作者
谢谢楼主。。。非常好的资料

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
17#
?楼主| 发表于 2015-4-26 09:53:55 | 只看该作者
beiing0551 发表于 2015-4-25 16:40
谢谢分享,很好的资料,看了您的几篇USB的例程文章,都很不错,我电脑上没安装VS2008及以上版本,把这篇文 ...

你可以单步调试下,看问题具体出在什么地方,有可能是系统函数兼容性问题
人生到处知何似,应似飞鸿踏雪泥。

1

帖子

0

主题

8

金币

新手上路

Rank: 1

积分
9
18#
发表于 2015-5-6 15:00:43 | 只看该作者
学习一下 感谢感谢

3

帖子

2

主题

38

金币

新手上路

Rank: 1

积分
41
19#
发表于 2015-5-19 15:50:22 | 只看该作者
高手,在不在?我又把你那个HID的实例,下载来试了。。其它地方没问题,有一点搞不懂。。。打开VS2010,显示一个DOS窗口,,就完了,什么数据没有,,是要自已添加数据吗?还是实例自带数据发送。是怎么一个流程。还有论坛上,有个超级终端,就是串口助手吧,怎么用的,比如,是用串口发数据,到STM32,,然后通过USB,传到电脑,(VS2010)DOS窗口上显示,??还是有没有都无所谓。

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
20#
?楼主| 发表于 2015-5-21 17:07:12 | 只看该作者
勇气 发表于 2015-5-19 15:50
高手,在不在?我又把你那个HID的实例,下载来试了。。其它地方没问题,有一点搞不懂。。。打开VS2010,显示 ...

1,vs2010工程程序是USB测试程序,它主要就是负责数据的发送和接收,你可以用Ctrl+F5启动程序,这样程序运行完毕后就不会关闭DOS窗口了;
2,超级终端实际上就是串口输出显示,你用其他的串口调试助手也是可以的,我用的时候是用的USB转串接,串口TTL端口接在开发板的串口输出引脚(TTL电平);
3,USB从机是不能主动的发送数据的,USB任何数据传输都是由主机发起,所以必须有主机程序(PC端程序)才能进行USB数据发送和接收。
人生到处知何似,应似飞鸿踏雪泥。

2

帖子

0

主题

25

金币

新手上路

Rank: 1

积分
29
21#
发表于 2015-5-31 23:37:00 | 只看该作者
非常不错。。。。。

1

帖子

0

主题

16

金币

新手上路

Rank: 1

积分
17
22#
发表于 2015-6-5 15:35:01 | 只看该作者
so good ,从第一刻开始good

1

帖子

0

主题

12

金币

新手上路

Rank: 1

积分
13
23#
发表于 2015-6-12 23:01:07 | 只看该作者
楼主非常帮!!!

5

帖子

0

主题

277

金币

中级会员

Rank: 3Rank: 3

积分
290
24#
发表于 2015-6-27 15:03:02 | 只看该作者
非常有用,谢谢

3

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
15
25#
发表于 2015-6-30 14:14:08 | 只看该作者
haohaohao.好资料,学习了

1

帖子

0

主题

24

金币

新手上路

Rank: 1

积分
25
26#
发表于 2015-7-1 09:38:39 | 只看该作者
感谢大神

3

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
3
27#
发表于 2015-7-14 17:27:53 | 只看该作者
学习了…………

6

帖子

0

主题

4

金币

新手上路

Rank: 1

积分
11
28#
发表于 2015-7-20 10:03:01 | 只看该作者
很不错 学习了

7

帖子

0

主题

16

金币

新手上路

Rank: 1

积分
23
QQ
29#
发表于 2015-7-20 16:17:19 | 只看该作者
登陆拜帖................

7

帖子

0

主题

16

金币

新手上路

Rank: 1

积分
23
QQ
30#
发表于 2015-7-20 16:21:50 | 只看该作者
拜帖..........

7

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
17
31#
发表于 2015-7-21 00:45:47 | 只看该作者
楼主的贴发的很好,就是太贵了!

7

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
17
32#
发表于 2015-7-21 00:46:21 | 只看该作者
努力回帖!多多赚钱!!

7

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
17
33#
发表于 2015-7-21 00:46:47 | 只看该作者
争取把楼主的好文买下来

7

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
17
34#
发表于 2015-7-21 00:48:12 | 只看该作者

7

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
17
35#
发表于 2015-7-21 00:49:01 | 只看该作者
感谢楼主的无私奉献!!!

3

帖子

0

主题

10

金币

新手上路

Rank: 1

积分
13
36#
发表于 2015-7-21 01:16:19 | 只看该作者
多谢楼主!!很有用

1

帖子

0

主题

26

金币

新手上路

Rank: 1

积分
27
37#
发表于 2015-7-21 09:37:40 | 只看该作者
楼主问一下 如果两个同样的pid vid设备同时插入到电脑中,上位机怎么区分两者通讯?

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
38#
?楼主| 发表于 2015-7-21 10:03:37 | 只看该作者
soso1217 发表于 2015-7-21 09:37
楼主问一下 如果两个同样的pid vid设备同时插入到电脑中,上位机怎么区分两者通讯?

通过设备句柄,扫描设备的时候会返回多个PID和VID相同的设备,程序可以根据返回的设备句柄进行区分
人生到处知何似,应似飞鸿踏雪泥。

10

帖子

0

主题

1

金币

新手上路

Rank: 1

积分
11
39#
发表于 2015-7-21 17:10:09 | 只看该作者
谢谢楼主分享

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
40#
发表于 2015-7-22 10:42:45 | 只看该作者
我用你的例子,跑在105上,用bus bound抓包的时候发从主机往设备发的时候为什么只发送了32字节的数,就提示写成功了

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
41#
发表于 2015-7-22 11:06:39 | 只看该作者
并且读数据的时候返回的是 1167错误,设备未连接,但是我检查了是连着的呀!

10

帖子

0

主题

1

金币

新手上路

Rank: 1

积分
11
42#
发表于 2015-7-22 16:44:58 | 只看该作者
请问楼主,usb口硬件otg_ID用接上吗?是不是得用usb_micro_AB吗

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
43#
?楼主| 发表于 2015-7-22 17:04:38 | 只看该作者
ronseal 发表于 2015-7-22 16:44
请问楼主,usb口硬件otg_ID用接上吗?是不是得用usb_micro_AB吗

ID可以不接,接口随便用
人生到处知何似,应似飞鸿踏雪泥。

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
44#
发表于 2015-7-22 17:32:04 | 只看该作者
楼主,我插上设备使用 bus bound抓取过程,结果是这样的:

USTS 80000600 bad pipe handle
USTS c0000011 xact error
RESET
ok
RESET

这是怎么回事呢!

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
45#
?楼主| 发表于 2015-7-22 17:38:06 | 只看该作者
happyhappy 发表于 2015-7-22 17:32
楼主,我插上设备使用 bus bound抓取过程,结果是这样的:

USTS 80000600 bad pipe handle

估计是单片机程序没搞对
人生到处知何似,应似飞鸿踏雪泥。

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
46#
发表于 2015-7-22 19:01:58 | 只看该作者
飞鸿踏雪 发表于 2015-7-22 17:38
估计是单片机程序没搞对

我用bus bound再次抓包看了下,那些描述符都上传的是对的,主机往设备发的时候,设备收到了,我在回调函数里写了个亮灯的程序,灯会亮,但是USB设备向主机发送应该出问题了。

3

帖子

0

主题

2

金币

新手上路

Rank: 1

积分
5
47#
发表于 2015-7-22 20:54:29 | 只看该作者
happyhappy 发表于 2015-7-22 19:01
我用bus bound再次抓包看了下,那些描述符都上传的是对的,主机往设备发的时候,设备收到了,我在回调函 ...

我的也是,USB向PC发数据都监控不到,其他都正常

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
48#
?楼主| 发表于 2015-7-22 21:16:49 | 只看该作者
安徽菜农 发表于 2015-7-22 20:54
我的也是,USB向PC发数据都监控不到,其他都正常

USB向PC发送数据并不会立即发送成功,它必须等到主机调用读数据函数之后才能成功传输数据,所以主机和从机程序必须配合好才行。
人生到处知何似,应似飞鸿踏雪泥。

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
49#
发表于 2015-7-23 17:39:25 | 只看该作者
我在单片机程序中打断点调试的时候,可以走到USB_SendData(),然后,我一步一步跟进去,调用OTGD_FS_EPStartXfer( ep )这个函数的时候返回的状态是ok的,但是,主机就是无法收到数据

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
50#
发表于 2015-7-24 16:15:02 | 只看该作者
飞鸿踏雪 发表于 2015-7-22 21:16
USB向PC发送数据并不会立即发送成功,它必须等到主机调用读数据函数之后才能成功传输数据,所以主机和从 ...

我想问一下,单片机配置端点2为IN,向主机发送数据,主机怎么知道要接收断点2的数据呢?我上面是不是也需要进行设置

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
51#
?楼主| 发表于 2015-7-24 16:33:09 | 只看该作者
happyhappy 发表于 2015-7-24 16:15
我想问一下,单片机配置端点2为IN,向主机发送数据,主机怎么知道要接收断点2的数据呢?我上面是不是也需 ...

主机在收发数据的时候都必须指定端点号的
人生到处知何似,应似飞鸿踏雪泥。

12

帖子

0

主题

11

金币

新手上路

Rank: 1

积分
23
52#
发表于 2015-7-25 23:43:12 | 只看该作者
谢谢分享!!!!

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
53#
发表于 2015-7-27 09:58:14 | 只看该作者
飞鸿踏雪 发表于 2015-7-24 16:33
主机在收发数据的时候都必须指定端点号的

我看楼主的PC端的程序,没有看见哪设定的端点号

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
54#
?楼主| 发表于 2015-7-27 11:36:16 | 只看该作者
happyhappy 发表于 2015-7-27 09:58
我看楼主的PC端的程序,没有看见哪设定的端点号

搞忘了,HID驱动好像不需要设置端点号
人生到处知何似,应似飞鸿踏雪泥。

22

帖子

1

主题

72

金币

注册会员

Rank: 2

积分
102
55#
发表于 2015-7-27 13:27:15 | 只看该作者

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
56#
发表于 2015-7-27 13:40:27 | 只看该作者
飞鸿踏雪 发表于 2015-7-27 11:36
搞忘了,HID驱动好像不需要设置端点号

那么读写方式呢,我单片机配置的是中端传输,PC端程序去读的时候,读的时候是不是需要和单片机保持的一样,因为我单步调试单片机端的程序,端点2的使能,然后发送数据的buffer地址,我看都是对的,但是PC端就是收不到数据

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
57#
?楼主| 发表于 2015-7-27 15:26:32 | 只看该作者
happyhappy 发表于 2015-7-27 13:40
那么读写方式呢,我单片机配置的是中端传输,PC端程序去读的时候,读的时候是不是需要和单片机保持的一样 ...

PC端你用的什么方式写的驱动程序?
人生到处知何似,应似飞鸿踏雪泥。

4

帖子

0

主题

5

金币

新手上路

Rank: 1

积分
11
58#
发表于 2015-7-28 11:03:06 | 只看该作者
谢谢分享!正是我所需要的源码啊!

4

帖子

0

主题

5

金币

新手上路

Rank: 1

积分
11
59#
发表于 2015-7-28 11:05:42 | 只看该作者
我是大水表,就是为了来下一个例程。

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
60#
发表于 2015-7-28 15:13:11 | 只看该作者
飞鸿踏雪 发表于 2015-7-27 15:26
PC端你用的什么方式写的驱动程序?

PC端的程序我直接用的楼主的,现在PC端收到数据了,我调试的时候发现有个向发送FIFO写数据的时候有个判断,while??((txstatus.b.txfspcavail > dwords) &&
? ?? ?? ? (ep->xfer_count < ep->xfer_len) &&
? ?? ?? ? (ep->xfer_len) != 0)
但是我单步调试的时候发现,txstatus.b.txfspcavail==dwords,这样满足不了条件,一直没有向FIFO写数据,我改成 >=了,PC就可以读到数据了。

感谢楼主提供的例程,在单步调试下,我也对USB的传输有了一个大致的理解,非常感谢!

12

帖子

0

主题

12

金币

新手上路

Rank: 1

积分
40
61#
发表于 2015-7-29 17:24:27 | 只看该作者
又来下载资料了

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
62#
发表于 2015-7-30 10:11:56 | 只看该作者
楼主,我还有个问题,用USB2.0.1的库,里面有个设备库,我怎么没有看见报告描述符的设置的地方,不像1.0的库,源文件就可以看的很明显,HID传输的时候可以设置成块传输吗?

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
63#
?楼主| 发表于 2015-7-30 10:25:37 | 只看该作者
happyhappy 发表于 2015-7-30 10:11
楼主,我还有个问题,用USB2.0.1的库,里面有个设备库,我怎么没有看见报告描述符的设置的地方,不像1.0的 ...

应该是在一个文件名包含core字样的.c文件里面,HID是用中断传输方式,不能用块传输
人生到处知何似,应似飞鸿踏雪泥。

3

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
3
64#
发表于 2015-7-30 10:44:47 | 只看该作者
好,刚好要用到HID通信,多谢楼主!

1

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
1
65#
发表于 2015-7-30 16:35:36 | 只看该作者
真的是好东西啊

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
66#
?楼主| 发表于 2015-7-30 17:28:11 | 只看该作者
sagetom 发表于 2015-7-30 17:07
东西不错。
在使用VS2010版的时候,直接提示 stm32 hid stop working,正在找原因当中。

检查下句柄是不是为空,然后也被使用了
PC端程序可以参考这个例程的程序
http://www.embed-net.com/thread-177-1-1.html
人生到处知何似,应似飞鸿踏雪泥。

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
67#
发表于 2015-7-31 11:27:29 | 只看该作者
飞鸿踏雪 发表于 2015-7-30 10:25
应该是在一个文件名包含core字样的.c文件里面,HID是用中断传输方式,不能用块传输

我想要用块传输方式的话,那是要参考你得那边自定义设备的例子吗

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
68#
?楼主| 发表于 2015-7-31 14:12:09 | 只看该作者
happyhappy 发表于 2015-7-31 11:27
我想要用块传输方式的话,那是要参考你得那边自定义设备的例子吗

是的
人生到处知何似,应似飞鸿踏雪泥。

12

帖子

0

主题

15

金币

新手上路

Rank: 1

积分
43
69#
发表于 2015-8-1 22:59:05 | 只看该作者
好东西,帮大忙了

29

帖子

2

主题

14

金币

新手上路

Rank: 1

积分
43
70#
发表于 2015-8-3 14:33:25 | 只看该作者

我看你那个是属于自定义的HID,这不也是HID吗,这个可以用块传输吗?

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
71#
?楼主| 发表于 2015-8-3 16:23:04 | 只看该作者
happyhappy 发表于 2015-8-3 14:33
我看你那个是属于自定义的HID,这不也是HID吗,这个可以用块传输吗?

不可以,HID不能用块传输
人生到处知何似,应似飞鸿踏雪泥。

17

帖子

2

主题

398

金币

中级会员

Rank: 3Rank: 3

积分
415
72#
发表于 2015-8-3 22:39:22 | 只看该作者
正在找的原码

48

帖子

7

主题

3

金币

注册会员

Rank: 2

积分
81
73#
发表于 2015-8-4 22:18:22 | 只看该作者
不错,不过不知道为什么在我机子上总是unkwon device

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
74#
?楼主| 发表于 2015-8-4 23:15:12 | 只看该作者
homo 发表于 2015-8-4 22:18
不错,不过不知道为什么在我机子上总是unkwon device

估计是USB_EN引脚没配置对,你要根据自己的硬件修改下
人生到处知何似,应似飞鸿踏雪泥。

17

帖子

2

主题

398

金币

中级会员

Rank: 3Rank: 3

积分
415
75#
发表于 2015-8-5 01:11:49 | 只看该作者
刷金币来了

17

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
17
76#
发表于 2015-8-5 10:12:47 | 只看该作者
很不错的帖子,就是上位机的打不开!

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
77#
?楼主| 发表于 2015-8-5 14:20:55 | 只看该作者
iyu555 发表于 2015-8-5 10:12
很不错的帖子,就是上位机的打不开!

别人都能打开,就你打不开...
也不说你是什么开发环境....
人生到处知何似,应似飞鸿踏雪泥。

4

帖子

0

主题

15

金币

新手上路

Rank: 1

积分
19
78#
发表于 2015-8-5 22:51:48 | 只看该作者
好文章,值得好好学习,谢谢分享

17

帖子

2

主题

398

金币

中级会员

Rank: 3Rank: 3

积分
415
79#
发表于 2015-8-6 01:17:04 | 只看该作者
本帖最后由 飞鸿踏雪 于 2015-8-6 09:09 编辑

OpenMyHIDDevice(0)这个函数有点BUG,有多个设备查询时会出问题,我改一下上位机,可以正常了,以供下载。

PC_HID.zip

151.39 KB, 下载次数: 71

售价: 10 金币 ?[记录]

怎么不可以设金币

17

帖子

2

主题

398

金币

中级会员

Rank: 3Rank: 3

积分
415
80#
发表于 2015-8-6 01:20:47 | 只看该作者
hytz845 发表于 2015-8-6 01:17
OpenMyHIDDevice(0)这个函数有点BUG,有多个设备查询时会出问题,我改一下上位机,可以正常了,以供下载。

放在这里不可以收金币,应该搞个链接的

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
81#
?楼主| 发表于 2015-8-6 09:10:37 | 只看该作者
hytz845 发表于 2015-8-6 01:17
OpenMyHIDDevice(0)这个函数有点BUG,有多个设备查询时会出问题,我改一下上位机,可以正常了,以供下载。

感谢分享,这个对多设备很有用
人生到处知何似,应似飞鸿踏雪泥。

1

帖子

0

主题

8

金币

新手上路

Rank: 1

积分
9
82#
发表于 2015-8-6 10:41:11 | 只看该作者
看看,谢谢楼主。。。。

48

帖子

7

主题

3

金币

注册会员

Rank: 2

积分
81
83#
发表于 2015-8-6 15:52:14 | 只看该作者
好东西,谢谢楼主

48

帖子

7

主题

3

金币

注册会员

Rank: 2

积分
81
84#
发表于 2015-8-6 16:12:30 | 只看该作者
78楼的代码不错,值得灌水

17

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
17
85#
发表于 2015-8-7 10:28:13 | 只看该作者
怎么在PC端测试时,不能收发数据呢?

17

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
17
86#
发表于 2015-8-7 10:29:43 | 只看该作者
评论中的代码,还要收费啊?

17

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
17
87#
发表于 2015-8-7 10:37:56 | 只看该作者
飞鸿踏雪 发表于 2015-8-5 14:20
别人都能打开,就你打不开...
也不说你是什么开发环境....

PC端 win732位
开发板 STM32f103 USB从设备

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
88#
?楼主| 发表于 2015-8-7 10:52:07 | 只看该作者
iyu555 发表于 2015-8-7 10:37
PC端 win732位
开发板 STM32f103 USB从设备

你用什么软件打不开那一个工程?
人生到处知何似,应似飞鸿踏雪泥。

3

帖子

0

主题

0

金币

新手上路

Rank: 1

积分
3
89#
发表于 2015-8-11 10:59:34 | 只看该作者
版主大神,学习ing

8

帖子

1

主题

30

金币

新手上路

Rank: 1

积分
38
90#
发表于 2015-8-11 11:27:03 | 只看该作者
楼主 为什么107的源码下下来 还是103的工程?能用么?

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
91#
?楼主| 发表于 2015-8-11 12:09:02 | 只看该作者
klevinkang 发表于 2015-8-11 11:27
楼主 为什么107的源码下下来 还是103的工程?能用么?

条件编译宏定义不一样,可用
人生到处知何似,应似飞鸿踏雪泥。

8

帖子

1

主题

30

金币

新手上路

Rank: 1

积分
38
92#
发表于 2015-8-11 12:19:16 | 只看该作者
多谢解答,所以只要在stm32f10x.h 里#define STM32F10X_CL就可以用了是吗?

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
93#
?楼主| 发表于 2015-8-11 20:47:55 | 只看该作者
klevinkang 发表于 2015-8-11 12:19
多谢解答,所以只要在stm32f10x.h 里#define STM32F10X_CL就可以用了是吗?

编译器的全局宏定义
人生到处知何似,应似飞鸿踏雪泥。

1

帖子

0

主题

36

金币

新手上路

Rank: 1

积分
37
94#
发表于 2015-8-13 10:20:41 | 只看该作者
感谢楼主,正需要资料

35

帖子

0

主题

8

金币

新手上路

Rank: 1

积分
43
95#
发表于 2015-8-13 14:37:07 | 只看该作者
谢谢版主,正在研究

3

帖子

0

主题

59

金币

注册会员

Rank: 2

积分
103
96#
发表于 2015-8-13 16:19:11 | 只看该作者
正研究这个,可惜没钱下源码

3

帖子

0

主题

59

金币

注册会员

Rank: 2

积分
103
97#
发表于 2015-8-13 16:23:11 | 只看该作者
USB HID 类设备,不需要装驱动吧

1110

帖子

173

主题

14万

金币

超级版主

Rank: 8Rank: 8

积分
149607
QQ
98#
?楼主| 发表于 2015-8-13 16:56:35 | 只看该作者
ciciendi 发表于 2015-8-13 16:23
USB HID 类设备,不需要装驱动吧

不需要自己安装,直接使用操作系统自带的驱动
人生到处知何似,应似飞鸿踏雪泥。

14

帖子

0

主题

25

金币

新手上路

Rank: 1

积分
41
99#
发表于 2015-8-18 12:41:14 | 只看该作者
楼主: STM32F103能支持USB3.0

14

帖子

0

主题

25

金币

新手上路

Rank: 1

积分
41
100#
发表于 2015-8-18 12:48:27 | 只看该作者

正好在学习stm32的USB 感谢楼主提供如此全面的资料

14

帖子

0

主题

25

金币

新手上路

Rank: 1

积分
41
101#
发表于 2015-8-18 12:51:26 | 只看该作者

谢谢分享!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|嵌入式以太网社区 ( 渝ICP备14007427号 )?

GMT+8, 2019-11-6 12:34 , Processed in 0.313964 second(s), 34 queries .

Powered by Discuz! X3.2

? 2001-2013 Comsenz Inc.

快速bet365体-在线体育投注_365体育投注地址_365体育投注登录 返回顶部 返回列表