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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 ) d* B& i; {" H4 G' F

. M! p; Q: {  l! d0 ~一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
1 C. Q' ?* E3 d3 h0 y5 d1、配置时钟、USB选项及管脚功能,有二个LED和二个按键) X1 }" J1 r% e# F# w7 L- n) A' @
1.png - v. e$ Z7 x1 M/ m  m3 w/ q8 c
* r" c2 t& T; G1 ~# m+ l
2、选择USB功能为HID
$ l; C( G, B) l. J" h 2.png 5 v1 W' i' f. K/ d! m7 Y

- O3 |# |! E; ~' p( {! Q3、配置时钟1 t: V9 T. Q, J* n$ L" p0 N: ?/ m
3.png
' j) U6 p. ~( z; y
5 h3 {2 p$ N1 B( r; C4、配置IO口功能0 e, J) ]2 d, p7 [, A
4.png
3 ^1 N/ s( T* c8 L7 y$ k; g3 t7 q/ I
这样就完成了配置,再生成工程,整个过程不到1分钟。7 \2 Z2 S% W4 i; f/ T
当然还要在工程里面添加必要的应用程序:
. a# k) B0 w1 M* [. o; g1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
# E" Y- Y% G$ ?# Y 5.png
# y) b* O  n- X; {" r2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
6 |' u: L! ?/ @- ?! s- G# a 6.png
0 R" F& K% u  V1 E- l
% o* x2 b: O9 C, z( o# e4 A3、在main函数里面添加如下内容:4 ~% q- o0 r) [* C% Z
7.png
- ?: B* K2 f0 G' {
: o, D  Q3 c5 P2 J这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
/ @  A' c: t5 G* l上位机软件:
. H: S/ L0 d7 |! S QQ截图20170413141519.png - s* J( N. ?  l8 J: j# J
1、连接图:! T" V: [) g) `% m4 f* V" @1 |" i5 ]' M
P70413-141700.jpg 8 D& X7 T0 k- a, @0 y
" B# X: f0 O6 `$ Y8 U* J0 I
2、上位机控制板子上的LED:
% G! u8 r2 i8 S$ v- s- I P70413-141923.gif
( D5 i( ^# A! z) K! n) e( h! M8 \. Y$ N
3、按键信号反馈给上位机:. }* g0 A4 F1 A% q2 G
P70413-141954.gif
' l/ k2 s7 M' h4 i6 \2 D4 o
9 W$ H. l: E, J3 n. ?附件:
1 |) f6 {2 F" N- K 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:597 W: X3 G# E  v# v
不错,感谢,  X6 u: z# Z! k+ l% b$ Q
对于报告描述符还是有不明白,
- F8 W8 E2 p% I# k5 n# 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) */  
( u2 r- `, t! S  ^" ?* Y9 U6 w+ X+ l: H6 G3 i. ~& S7 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 编辑
* z1 j3 Z, ~6 @- |; m  K. |( D
6 A1 y& p# G. F: d请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
1 ?+ k1 M' Z  T3 _ 能指点下不?1 \" `3 |% F: ]/ w
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:414 X7 @# T# T& i1 ~3 A: G
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

; P4 e, u8 d) P- u查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:9 b  l0 M& Y& M

- F9 p- g2 w) m8 u; ^0 y) h

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:558 n! r7 R8 ?7 X: j* w
谢谢 ANNY的回复,我的时钟是这样的:
8 F7 a; h- h% ^4 O) C2 m
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
* k( g) L( _& ^$ W( i
不错,感谢,  c, J, a+ s$ a) e9 d$ l7 F0 O. p4 o
对于报告描述符还是有不明白,8 r6 B2 {; C  X0 x6 v

' ]% @. D/ U) B6 p
emc_ytm 回答时间:2017-7-21 17:42:03
$ y% c' v4 R# n- V+ c
) a) r1 p  M- ^7 b( [( k) u7 l
好的,谢谢!!!
, q( E* }' B) }% {4 y  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,5 I  f4 R& Y6 K$ B/ O9 |9 }0 {
我的现在连上去都是发现为低速设备2 Y7 g8 m5 X* Z3 |. a
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
; t7 x% E8 @' e& q  T我现在仅是使用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 的线太长了,   + a# R( [. {- Z. X+ y

' E, l& ~6 ?+ s! g0 A" ^- z 缩短一些接到电脑上就可以了。
# Q7 L! y# q6 l+ r- W/ C4 f
8 n& H5 y/ ^% G3 i. A3 @
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版