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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 ! X" T7 Y& E/ }+ d) ]( L& _

1 x7 J" L) b$ N, n6 K$ q2 v一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
( {0 ?3 e8 b; A4 E1、配置时钟、USB选项及管脚功能,有二个LED和二个按键) q! U5 V# [& P' A
1.png # g8 I; g' }9 g+ V
' S3 G- `5 j6 D8 C  j, z
2、选择USB功能为HID
4 p& Y, Y2 C  \ 2.png
3 j5 L7 A' l+ l0 @
) h1 W% e" z3 x; P- \+ g3、配置时钟
0 W: ~$ M! W: i5 I 3.png   ]# }; q) U' m  a+ ^# W0 C4 y

2 J5 V* D% N+ t8 {9 A4 n) U, {. _4、配置IO口功能: X! c  j1 @2 H' Y% t; n; v( W. H
4.png   }( T2 M! _0 ]. S# h. s6 q
8 @- O# ?4 W6 {
这样就完成了配置,再生成工程,整个过程不到1分钟。
% ?, K" P1 s* r* j当然还要在工程里面添加必要的应用程序:2 l  G6 K5 u4 n; g. M4 V/ e) }
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
! E# b& N6 ~+ |0 ?+ u7 w$ ?' I 5.png 1 e% W8 Z: y, v6 C! q" }; j4 P7 X( o
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
) C0 Z! {! N+ b( Q( x* Q; a 6.png
# e  T$ w' |, x+ |  T! l" ?6 i3 N$ y
, \' ], s& l) T, c3、在main函数里面添加如下内容:
' T0 l( I" j7 p+ }; k, {$ i 7.png + y% N, @# d5 u4 ^! B+ p- {9 _

. B/ ]: G7 X) \' y% d- ^2 t. Y这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
+ i' f9 g9 ]$ k5 u8 ~上位机软件:* ~9 a7 l3 e( f; D: u+ T8 o2 T
QQ截图20170413141519.png
6 r& k# w) `8 y  A' z) P1、连接图:
2 J/ z- G: i( b/ q0 D$ q* I4 I0 k P70413-141700.jpg ; p& D8 H" j0 s6 L) }. `7 V
0 ^% p6 r7 |/ L' w1 Y. O- w
2、上位机控制板子上的LED:
/ I0 |( h$ p% N: b; |, _ P70413-141923.gif
$ V8 d/ a* T8 ]1 O+ U9 Z/ m1 V! X. i; `, @4 @0 P+ u
3、按键信号反馈给上位机:
5 e/ G$ @- m9 I( }/ U# ~2 H7 ] P70413-141954.gif
  r" _& y  W* M% `$ M' }" C* z  ^
附件:* V) S+ @; D/ Q$ v% i5 ~  `/ S
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 s" S. n& H; u. J9 ?
不错,感谢,( E+ i; W9 t0 `
对于报告描述符还是有不明白,
' |! D& B; V( Z5 C4 x
你可以看看这个 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) */  1 ^2 j% ]8 ^' `

- D& E5 P" z8 h. T4 _" h../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 编辑
8 T, L& E3 @% P* s7 K0 f2 I4 n4 A  Q- s6 r2 P) p
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
/ ?( l8 i0 i, g! ~( n 能指点下不?
) \) ?1 g$ _0 n: @/ V* w/ s) K( c
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
" o* m7 d0 ~& O: [! F请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

4 E1 c3 B5 Y, H- u  |3 M* S+ E$ O查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:- s; a8 j# h+ B& ^, N& b
8 h# j3 y. D4 j+ L- l0 t" t

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:552 c% D( k) H4 P, m
谢谢 ANNY的回复,我的时钟是这样的:
! v4 v. _6 q0 o1 U1 v
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

* i5 J9 \+ A# r8 @! K# ?不错,感谢,
0 W3 f. s1 W4 s: f9 l# R0 N 对于报告描述符还是有不明白,2 S/ N5 K5 }5 {3 U& _% A9 r
( M( j( e# Z% a' q* c! e
emc_ytm 回答时间:2017-7-21 17:42:03
4 [& o) l% C5 h# ?0 p( Y" m
* b1 G2 d4 n- y+ f/ i1 i
好的,谢谢!!!
! _- L4 Z% B* [: x: E3 i  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
# C. K4 ?0 h# N$ H& r我的现在连上去都是发现为低速设备
/ ~9 F1 g4 V  [) C4 S. [40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
, C: T- T' [6 |& Q( G" ^( d我现在仅是使用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 的线太长了,   
( Y  h, v3 H" P' i+ l8 R8 H
( @+ A+ c3 d9 C 缩短一些接到电脑上就可以了。
' e& a1 T1 `6 k) H* L5 ?
9 ^& _& G( U/ A4 V/ ~- o6 N
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版