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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
2 A- f, T6 h; Y; t6 W# K/ h3 n8 }/ b( x9 J' h
一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:8 @& \7 H' Y% _2 p  r* \5 z; b
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键1 c, ^5 T; |( }5 n. k0 |4 h
1.png + x: j6 _  x, q' N7 {. _3 \

( ]" j- F! ?4 ?  u2、选择USB功能为HID, P- u8 g  w/ ]* l
2.png 8 W! A5 ?& `% o* o
* Q4 ^" K; @' d8 E6 ?- [2 R1 x
3、配置时钟. B; s. R  e' h. t9 t. {
3.png
% a5 p4 Z% ~0 V9 s* e: \
; J9 S2 q* D% P& ]2 G! `0 `5 d4、配置IO口功能
- X' S; E4 U& y 4.png
7 p$ g' N5 {) ^7 ]3 b7 z7 y; w$ m6 H
这样就完成了配置,再生成工程,整个过程不到1分钟。: ?$ a$ S1 l4 [- e! E
当然还要在工程里面添加必要的应用程序:& G3 J+ u: E+ B) l8 W* U# F8 q5 A
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:. f5 K! i! O$ |) w9 q3 L
5.png
+ x. d- y4 v/ B8 m" t) U0 `2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
' C. Q  v8 |+ d. r) I: O  O 6.png
! r' h$ s1 R# ~3 ?  E  b- a- _0 m5 n2 Y$ ^$ }
3、在main函数里面添加如下内容:/ Q5 ]% _6 s" D" f; r, m
7.png
% d1 i$ E7 I6 `# y) M; e* k0 s6 A) H6 B5 W; r+ K- \1 c  ^* N) [, q
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:* ?+ s7 c6 l# y
上位机软件:1 e- ^+ v% F5 G3 N- S
QQ截图20170413141519.png
2 ]% U3 {# O; i1、连接图:
8 k# m" f& z) G% S P70413-141700.jpg 5 n. q0 m- E4 ?. `% _, m  i3 a
) O6 P1 L' N0 T) x, ^/ G0 D7 W
2、上位机控制板子上的LED:5 G' L4 S9 Y7 p( F# t( A' i
P70413-141923.gif
$ g* F. z& b% a7 @6 \, X0 r& E, n$ n0 X! {% b
3、按键信号反馈给上位机:
: i8 m7 ~% m8 l P70413-141954.gif 7 u' C, P- ^7 k
% ]7 h9 D6 q( w; y% u4 c
附件:6 E) q; y' [7 M) w
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: S% P! Y9 {2 M: R+ Q
不错,感谢,, V. _1 |7 D; K1 ^9 Q7 F$ e
对于报告描述符还是有不明白,

/ u6 Z6 H/ b+ H$ L( ^你可以看看这个 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 V* u$ C8 D* \+ k* V+ V

0 l8 }$ m; S# Q; W9 J  H. Z../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 编辑 ) z# D  C7 a/ P7 ?+ u2 V" {
" i% q( k8 F6 ~) W3 W
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
9 Z8 y" ]3 D- o& I( c  x( h 能指点下不?
) o/ d* N5 d  X  \3 A) d$ R
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
# p5 U6 A' A1 j) Y请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...
9 E$ A  x/ |; F
查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
$ Q; y- e* u- R9 J/ k- _. W# E. ]4 W  X: i+ u

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55/ m- ^/ j7 x) B9 J& u7 P) R! v
谢谢 ANNY的回复,我的时钟是这样的:
, B' f. n/ Y. t- x" ?1 Q
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
+ f, H+ Z) U! Q5 a. b: R' c
不错,感谢,# T' F& K, R- n. I
对于报告描述符还是有不明白,
4 c3 I% d/ q0 n: \$ Q( }+ j0 N8 f- N
emc_ytm 回答时间:2017-7-21 17:42:03

( V; e3 r: y( ]0 v' A( d; ]
3 J: H, I% n- O2 i' H好的,谢谢!!!5 Z3 z# J4 Q6 Z& u; V& I8 G! U
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
) ~2 P# n! J/ ^" _* |5 X$ I我的现在连上去都是发现为低速设备3 Q2 O' y! s+ V& y4 E
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常6 e3 B9 E1 _1 {  n4 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 的线太长了,   # k; ?& K& y* ], [
# T( J; r0 W7 H0 U. Z! f4 k- E
缩短一些接到电脑上就可以了。
; [# a& M3 k8 r' |/ _
: [9 o, W/ W$ ^! A2 w" H. p
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版