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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 + @; j8 ?2 p$ b) \
5 g# g6 V4 |: R( V# k3 j
一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
% ]$ }$ T" g& U! K. ]8 c1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
9 s6 `4 f! ]) m) k. b* N1 v 1.png
) K  a, x4 o( A" D
: v7 D( D5 B: o2、选择USB功能为HID
0 `& c5 {# F( n! O, E, r 2.png : a- ~5 `; ~  [) L3 F  \* {! C
$ |- s  @/ `3 M
3、配置时钟% L, U- `, S0 F
3.png 1 q* z9 S: d5 ~- h

% Y6 {" B' u8 d6 a) H4、配置IO口功能" G; P8 ~  T. C+ a
4.png
* C) _2 _3 X" `& P8 z+ k2 {
4 m6 C  n0 q/ |0 }9 H4 J/ g$ |" d这样就完成了配置,再生成工程,整个过程不到1分钟。1 W  K: ]$ N. K
当然还要在工程里面添加必要的应用程序:' m) ~# D* w& Y
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
5 M8 T) W1 d1 d7 X0 V1 P2 K1 p) ? 5.png   W6 z/ V8 T* U
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
1 R3 _/ Q: D1 W( O' N+ K* w 6.png
: G! w. {1 E) \2 `. f, z6 l# P, [7 n" K# |
3、在main函数里面添加如下内容:
& H- E- t6 A3 V; [6 U 7.png ! I. B0 K4 S$ ~. _5 x7 G
/ ~; o! f/ G: X' P3 v" w0 @3 f
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:. t. e" Q1 c. X, D
上位机软件:1 V: D2 Y2 K1 R6 R
QQ截图20170413141519.png + m' R% u; g  g
1、连接图:
8 e- _' x5 _, f) V  F P70413-141700.jpg 8 r6 S. z$ [7 w4 {

* z) S( W4 u, [. c/ R2、上位机控制板子上的LED:3 L% H. o* i  X% ?5 \
P70413-141923.gif
% m1 X5 W" H3 P# t5 O0 i
1 p1 W* P$ D9 p% p3、按键信号反馈给上位机:$ N3 Q$ G4 E7 W0 Z4 l7 w: P0 X
P70413-141954.gif
- Q) E3 P, i  R2 _9 i" D/ X
& j8 W4 s, G) _- B6 [附件:6 j2 w0 a  d/ u  `' R
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:596 K4 K6 @( ?/ c# f; Z
不错,感谢,
6 d  }. E+ A/ p8 o8 @3 o 对于报告描述符还是有不明白,

' @+ Q' r" o: v6 b# f4 g3 G" J你可以看看这个 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) */  
% I, I, d; C9 ^' M! c& T# Z( q  }# E0 A& L) O8 s
../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 编辑
3 T8 a) D& Z4 A
$ B; {/ T* B" Y' z$ @7 b请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
! J* I& `0 Q) P 能指点下不?3 x% x6 N( d" {. [( m! b0 _/ e/ E9 u: w9 M
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
6 O! B3 g- N: [+ |2 X" O( e' s请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

* a: G, U) S+ a. U2 B# E查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:; F& C2 v- d# ?1 t# O4 r7 [' D
& |& c% w6 J. K9 z6 l

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55- C5 K5 i/ X) C4 V6 `( k7 e
谢谢 ANNY的回复,我的时钟是这样的:

' c! }; v  z2 X% J. a' p1 J- l" M% ?用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
: _! E/ g$ }: }+ a' ^5 I* ?
不错,感谢,& |# H+ ]+ [9 q: t/ }9 B6 A1 E
对于报告描述符还是有不明白,
* k, \8 X- ?2 h2 a* d  Q5 ^+ |) B2 a: d
emc_ytm 回答时间:2017-7-21 17:42:03
4 P' D- h' N7 y

: O2 P" C1 D, H7 S( x. v好的,谢谢!!!& E' n. J# \5 _& ]  I1 {
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,! X9 T9 D  d- H" s" r
我的现在连上去都是发现为低速设备9 I8 r7 J/ z; R! }
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
5 Z. e" ^0 ?, a- C- w我现在仅是使用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 的线太长了,   
5 p1 S' c/ D, p% U
: l0 R. B$ U! G: q9 O 缩短一些接到电脑上就可以了。
$ R; Q8 ?( i9 s  A9 s8 z  x2 u' g) n0 w) r( g& o- ?. A3 X
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版