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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 & Y* G& Y+ N! V! u0 ?( S8 r2 @( K

% ~5 L1 d+ [+ K5 ?- k( F, p一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:6 U- u, c+ p* U8 @3 f( A* H& }3 S
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
( o9 g3 ?9 G" t8 I" u9 N! O& \ 1.png 0 ^2 l, e# @( b* @- Z
( v( G3 r: S6 z" c& u  u' p
2、选择USB功能为HID$ N1 }, X8 ~1 x' P
2.png
) f5 B  F- a, B5 B0 N* [
- w* K8 i8 A6 V1 O  ]1 T3、配置时钟
0 r5 e4 p/ Y4 p% g4 x! A, p 3.png 1 Y. j$ @8 E6 [+ N* j4 X/ [

$ x1 T# w" N+ }' v3 U- s4、配置IO口功能% `& h  _( |: T' m4 K
4.png
9 R) R  V. C# R, J& W/ Z' q- K3 n, E
这样就完成了配置,再生成工程,整个过程不到1分钟。! u* A% Y8 B. R+ w) }" [0 `% g
当然还要在工程里面添加必要的应用程序:
  m9 D8 k( ^; `# m& o  ^$ m1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:: M" B0 D  [* S* a/ f
5.png / q+ T  ?% u, J9 p
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
4 N0 u' m) d+ z6 |; `$ P 6.png 3 n4 @: p( z7 E1 H
+ F& @( ^  S2 h6 ?6 e* Z0 _) Y
3、在main函数里面添加如下内容:1 j0 Q2 u/ r  @) v
7.png * E2 |5 V; h$ m6 w  v% }6 B
* O2 T' N; d$ `
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
4 U. d- U% z! |! c+ [3 E上位机软件:
) [) i% ~  S- e: o QQ截图20170413141519.png
0 L: L% X/ \3 J8 r% u/ N1、连接图:" Q$ ]; ?" t8 m' H6 M
P70413-141700.jpg 4 o- o1 u1 A% V1 J/ \# I0 B

" s- A: _6 J! d6 Y: X2、上位机控制板子上的LED:& O+ e' E2 K! i) X2 b
P70413-141923.gif : v1 `4 R/ ^4 p, f$ J
/ E7 {5 u- ]0 b" m0 A- _+ ^
3、按键信号反馈给上位机:# _5 w! G: W. V
P70413-141954.gif
1 @' j; [. ^+ T" `% X: `1 B$ a0 }: z) J
5 a$ r( J$ x1 _# b) f附件:
2 E. C' }4 ~9 t8 V( l, T 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; G- [3 N& i5 Z' \9 {
不错,感谢,
5 _# z2 e' ?' h- ?- Q. a2 g 对于报告描述符还是有不明白,

3 D2 ]( o- j& I2 O! B* |你可以看看这个 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) */  
0 t" ]5 H$ L9 t# n% J7 c' Q( ~- `. U8 l
../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 编辑 " K" X" b, T  h- }

, ?. g/ ^& u8 E9 s请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。$ Q- s" u' k5 R9 }: B
能指点下不?! N3 u' O; B- q
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41' m3 c! [( O' G% x, e8 d( d) p
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...
, y  R% T: r' G9 r. k$ q& C
查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:2 |" k4 M' I& j5 D7 w; K

6 j2 W& V& |+ v/ X2 {

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
$ t! S# J1 v$ @& U0 L& a9 i  e( ^谢谢 ANNY的回复,我的时钟是这样的:
* }& R3 l3 z: m5 `, x/ f
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
) |/ t9 X/ R9 O- D/ \+ u
不错,感谢,
; K4 Q  ~$ d3 d9 c6 \- d6 V% ? 对于报告描述符还是有不明白,
* }. e* m/ a; \, _0 J* r& r+ T) c; j; h: v+ J3 E
emc_ytm 回答时间:2017-7-21 17:42:03
; y; y( w9 L- Q* W$ P

# ^! e$ q# H$ X+ c& g, G* p好的,谢谢!!!  E3 m8 D$ O7 @0 Y8 @  }
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
7 s# `, ]  L) s1 q! j我的现在连上去都是发现为低速设备
. Y5 _& J. w1 c. C40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常4 J) g; Y. c- j- M7 o, ]
我现在仅是使用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 的线太长了,   $ R1 }# E6 K: y0 f* P6 i: E3 R

1 o* V% f: v8 r: x& b4 w 缩短一些接到电脑上就可以了。2 w7 z  B/ m6 K' I. T4 K
3 W$ L" ?4 R8 D; e$ m; q
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版