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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 0 U5 r9 ?* {( i' P' t, y
! a3 b9 l) {: `0 w% h+ B
一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:5 {3 \; l. @" A8 N9 @' _
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
3 C% Q. N; d, b, _1 \ 1.png
8 J$ Y* W" L; f( o
: v* U! e/ l$ O& o0 x/ s6 ^2、选择USB功能为HID% }* [, r" R! }4 A9 t' `3 {
2.png
( F( ?1 r( g" k/ w, I+ ^% A; y3 r( A+ s. C/ I$ H
3、配置时钟
3 o$ L5 |$ z% T* _4 V 3.png
: w6 @! i9 N1 \3 n
" Z$ e6 Q8 Z8 u' c0 ?5 Z- v4、配置IO口功能
. Q% ^% {' H( p; y1 W& B 4.png
+ r& k/ U, Y% Q: D0 `" l1 |& F6 k: S# |: x: R
这样就完成了配置,再生成工程,整个过程不到1分钟。
# k% F. |0 l7 E4 p$ C2 n当然还要在工程里面添加必要的应用程序:! w* T$ `9 F& e7 L+ W0 g2 ?
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:5 e1 S4 g4 _# z5 L; H+ x1 k
5.png
" E8 {% g/ ]% s, }  u# O2 s2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
3 b; f. L# f& Q5 o' ^5 l7 y0 m 6.png
$ g- W& [1 d. b" r1 S4 x) S5 M& j
3、在main函数里面添加如下内容:
/ z, J1 m+ J& \+ M( s3 o 7.png * @9 a: ?4 a; e" c: t
4 i7 p1 V* B* |/ ?
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:' e+ P8 L( X, G8 c
上位机软件:5 Q- f5 m1 \2 B& y# @
QQ截图20170413141519.png : }& u* E, P1 }7 A: B) f$ J
1、连接图:
: `/ ~8 c/ ]/ p; d- r P70413-141700.jpg
# y$ G. E; o. }' [- X2 v, J+ N' E% q. o* h. H" w, [* Q3 ?
2、上位机控制板子上的LED:
6 N2 s- ]3 @4 l- I$ u P70413-141923.gif
! l0 t2 s- e. g9 D2 w: Y5 W8 g7 e7 m+ \% N/ @7 P
3、按键信号反馈给上位机:, w, V7 H( a2 n* `8 y" z$ q
P70413-141954.gif ( L" y; S6 ~, M% Z# A3 r

$ Z1 M9 c/ ~5 Z附件:
$ t# z1 {5 I* F9 \ 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% N: |# _7 v1 A0 F/ _" Z
不错,感谢,  q4 F* c* q% @
对于报告描述符还是有不明白,
% r& s, h4 |" O' I/ N$ }; C
你可以看看这个 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) */  
$ j9 J7 _( A; Q! V0 {4 }9 d$ u+ E& E- E/ M8 p
../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 编辑
* S  f, Q1 M3 T: I$ D6 Q# F2 W3 S* b1 a$ w" x. t) S" l
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。( ?+ \# j* y( P  V8 K6 K& f
能指点下不?+ _3 U, B& i3 d* d8 e/ I
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
/ v7 o- t/ H" |$ t请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

% C5 D5 x4 ]! Y* ^" r4 f; O: D& }# Z5 w查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:: r4 @- u( C  F1 A2 D

! o, d7 s' ~3 w3 e: g

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55) P1 ^4 g3 p+ {# h  D) V
谢谢 ANNY的回复,我的时钟是这样的:
; s4 f+ e" _/ a+ y! Y. g, A0 t2 \  Z- B/ ]' Z
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

2 m6 E0 k; n/ Q5 J2 E6 u不错,感谢,
5 m0 G2 K% o, q" x$ C+ g 对于报告描述符还是有不明白,7 D# S1 q* n' ~4 Q$ H0 [
( L! [* m, N, R- l# H5 k
emc_ytm 回答时间:2017-7-21 17:42:03

5 n  {9 Z& ?: a, B: b: G* ], g& p7 f4 ]3 B: I
好的,谢谢!!!# u6 Z; K( X# g" w/ T, t2 ?
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
1 g7 Y' [/ m, R: \& m我的现在连上去都是发现为低速设备& z" A& z5 N/ h: k2 u$ d1 @1 D
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
4 b: N- T+ |1 ?4 K' A我现在仅是使用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 的线太长了,   
1 ~( s6 L* h# L$ T. ]8 I% [8 o* N  p7 n- ~
缩短一些接到电脑上就可以了。9 e  R9 l% N& O" ^

4 {  R/ s/ {& |* Y. L* y
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版