你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

通过STM32CUbeMX建立USB HID的双向通讯实验成功  

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 ; m& ~7 ^, {; L0 p# r3 c
0 e# h& b. ?5 e/ l( {
一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
% p: k+ l6 E; M9 M# T9 \2 l1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
) w. ~; h* y5 H6 R8 z# X 1.png
$ e) C3 N" S5 D" \  p) w# N; L3 z+ J4 o4 U2 D
2、选择USB功能为HID) f/ k: H8 P$ K6 N! `: o
2.png ' W5 v* V; k3 o$ S" A5 ^

% q* e1 e# M  _, w8 T! h/ M' Y) U3、配置时钟
; F& Y! _) t: }, ] 3.png 1 g' P5 x9 r5 [# Q
: L1 Y& D6 _- P" S9 b
4、配置IO口功能
4 l' h) Q' N8 d* c. a3 j2 h4 ]! k 4.png
2 c" [9 c5 N* _6 Q1 ?! x+ K2 Y6 ^3 M
这样就完成了配置,再生成工程,整个过程不到1分钟。
3 h0 p6 H' L2 b/ A6 V当然还要在工程里面添加必要的应用程序:: Z0 v: ^7 y- W/ n5 B% z& X/ H
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:% V# n1 w1 _* F) D
5.png & |1 H6 {% _1 N. H+ [  \, g! z
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
- Z& D  [. U" D; C1 N4 ^ 6.png
- S; K( i3 l( s8 k0 x) }1 r" d# D5 E5 T* @/ a
3、在main函数里面添加如下内容:( Y( Z$ ^! K9 \% a# g9 I, |8 o+ W
7.png , m4 H- z' \1 t; }) y% `1 ~
; E$ v& j3 [7 z* D: V
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
# W; U3 _0 T$ v+ x6 q5 f$ V上位机软件:, H/ \1 M0 r0 e, D' N; m: |, {
QQ截图20170413141519.png
3 p4 ]) h4 Z- l( T1、连接图:
2 R9 k& h; G3 K. a. g" F P70413-141700.jpg
* @+ `6 h+ x: O; j9 Z! C- P& R, Z' v+ h' @
2、上位机控制板子上的LED:
$ ^+ p5 s. `6 A: u$ n P70413-141923.gif
3 O0 u% E3 [8 D' J, W/ c1 L
, R: u/ W2 l9 F- k3、按键信号反馈给上位机:
: ]0 J1 b8 P1 p( |! |  F  C4 c& E  j P70413-141954.gif
& `! j( L7 Y* t# c% [) d) t
6 J: I6 y, b$ _) o. E. W; }  G附件:1 s" b$ ^- D4 c/ ?
MiniSTM32_HID.zip (12.15 MB, 下载次数: 6393)

评分

参与人数 6 ST金币 +8 收起 理由
ddyyzz123 -1 很给力!
stefy -1 感谢分享
a15815760472 -1 很给力!
gla19930103 -1
子曰好人 + 10 很给力!
努力的人 + 2

查看全部评分

9 收藏 31 评论154 发布时间:2017-4-13 15:03

举报

154个回答
anny 回答时间:2017-7-21 08:26:14
emc_ytm 发表于 2017-7-20 20:59$ P5 K4 ^1 G; J; f  s/ a
不错,感谢,; p, X* R+ L! P; L* L
对于报告描述符还是有不明白,

" m0 @4 [5 Q0 [: W1 T- `2 E你可以看看这个 STM32的CustomHID的各描述符介绍.zip (2.94 KB, 下载次数: 682)
stmuser 回答时间:2019-2-19 16:38:42
目前正在用STM32F103的USB,准备做个HID设备,用cubeMx生成了一个工程,代码完全不动,可以枚举,但是想修改描述符,找半天没找到怎么修改,除了设备描述符可以简单的修改,其他的都没有找到地方。楼主有什么关于USB库的使用文档没。
zengxuzhong 回答时间:2020-7-24 12:39:58
0x06, 0xFF, 0x00,      /* USAGE_PAGE (Vendor Page: 0xFF00) */  
2 {3 O" L# R* ]3 d9 O* C+ L( |5 p; ~7 v& O" `! w9 y
../Src/usbd_custom_hid_if.c(48): error:  #146: too many initializer values  直接复制过来的不知道错在哪?
jackten 回答时间:2017-4-13 16:05:09
楼主   厉害                          
fengjing500 回答时间:2017-4-14 16:25:09
牛逼了啊
董辰辉 回答时间:2017-6-13 14:19:43
学习下
zhao.zhao 回答时间:2017-6-13 19:27:05
学习了,明天跟楼主做以下看看
hereandy 回答时间:2017-7-18 15:41:44
本帖最后由 hereandy 于 2017-7-18 15:47 编辑 " q' N" D; a+ c1 T; F- S$ C
0 N) F* o8 {; E. ?
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
( P/ G. @, W" ~2 D4 G: E 能指点下不?
- C" N/ C! x& d( }  w2 O' A
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41$ u: v! o$ @: o8 E, S% y
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

6 t, {. q5 w  B查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
, z! t3 `& z( A, f
5 i9 m4 a/ ]% W

里面好像没有USB时钟的配置

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
- z; b' i  G  E+ }谢谢 ANNY的回复,我的时钟是这样的:

5 q" |( ], j1 L* l: f, ?用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

7 I& T& r' f  ]; W6 Z. @) d. r不错,感谢,7 S) ]4 f: r# _% o; u
对于报告描述符还是有不明白,, D* ?8 ^; Z' s4 H' F3 R2 ~

' W) W* ?- S3 J
emc_ytm 回答时间:2017-7-21 17:42:03
' k+ Y8 I9 F9 n
; ?/ @" X! p  D* c' t( r
好的,谢谢!!!
7 s, M4 C* ]& ~8 K) h7 S5 P* q/ _7 c) u  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
7 y9 D) g) h% l3 N* ?+ l+ v, J我的现在连上去都是发现为低速设备
8 n  w+ U2 Z* Z. H2 I# o40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常" }5 b( y. f" U+ h0 Z
我现在仅是使用DP 也就是D+ 上拉1.5K 到3.3V。
QQ截图20170721193350.png
epochal 回答时间:2017-7-21 20:48:32
多谢分享!
emc_ytm 回答时间:2017-7-22 15:54:55
问题初步确认是USB 的线太长了,   + l7 u5 Q' X9 ?  N0 L& a1 h, r
2 K" U+ s0 s3 X( ~
缩短一些接到电脑上就可以了。
5 ^7 j2 G% H% ?  L/ l0 l7 \6 f
6 r5 e, R' `$ k1 J4 ]
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版