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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 8 W" J- B( I: u$ F" M

4 B3 |' I, {; `: k一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
0 \9 S9 A' g  O9 H3 f/ T1、配置时钟、USB选项及管脚功能,有二个LED和二个按键* y  ?# r: X8 A* t& }. M
1.png
& j/ M* i& d% l: r
9 F" P. l8 p) L- U6 X0 l# l2、选择USB功能为HID) ?) e# A3 u0 s# F' q/ Y( P
2.png ) @/ K5 O, @# A# @+ t6 I8 e
/ ~/ G5 j: G" X: Z1 E  b9 o
3、配置时钟
4 k( H4 u5 x6 c$ G 3.png . r4 ^/ _/ w# G: ~* a# y6 s3 T) r8 |4 v
( L' d" G1 O- p$ n% J; B) t2 Z0 P
4、配置IO口功能" `) \* T3 ?; f/ Z% ]
4.png
7 c# Y8 O$ e( {4 L/ {+ h2 \
7 v! t' r; Y6 P- ]$ f8 N. u这样就完成了配置,再生成工程,整个过程不到1分钟。
" D- u. }/ S9 s+ }当然还要在工程里面添加必要的应用程序:) k6 a, m8 C# b3 c- B, n
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
( C* t5 h. U+ W" X; Z( r- ? 5.png
2 q7 c, |4 \. w: E' m2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
# ~, _. m( Y- x. g 6.png
- }# N' e3 [! G! K: C# w% J
0 O6 s9 C! O& [3、在main函数里面添加如下内容:
( H, r& |/ I$ y3 _/ W6 Q! d& ] 7.png
9 g* N1 H' i. E' r+ Y2 x/ ^( h! V* J4 b0 Z/ t' B
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
* N9 @2 Y% }* `0 |! c" n, d上位机软件:
1 w  m4 _, w% j9 B% ]' C; O QQ截图20170413141519.png
, e2 f& U, w" t$ r1、连接图:
0 X" g! U+ {# W: M) f0 y/ d% G  X P70413-141700.jpg
7 [; t! S$ z2 O! f, I
) k. f& C9 Y  {: f9 K- ~# Y" u( W2、上位机控制板子上的LED:
# b! u4 r+ x3 u# |  r: [4 O P70413-141923.gif 2 f( n/ D& J1 o) O" m

4 R& X1 D; ]0 r! Y0 @2 j* B7 k& J" v3、按键信号反馈给上位机:+ W2 ~' s! y5 a% {& q# C
P70413-141954.gif 3 @' |$ v$ P" h

( t6 [# ], t3 v  H" |- p附件:+ \7 D2 ^" m$ @& p; A5 Q# 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# [7 u" |$ p; I
不错,感谢,
- F" a! a  x5 M2 Z9 b% Z2 y 对于报告描述符还是有不明白,
& ^7 ^3 @2 G' V9 |
你可以看看这个 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) */  
4 r! B& `& G3 x9 _$ e8 k& b$ k- Z* M
/ B' e( J; }! w6 X../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 编辑
  S8 q) N; ^+ Z+ W6 c, Y9 @
8 S' v4 l6 {; U请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。/ L* d4 Z6 k; w6 J5 {
能指点下不?) Q4 z$ J  L! G6 D
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41- D  N1 |) ~1 t% |: M$ V
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

5 H- t: P3 P& P6 N7 K2 P查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:8 d; ?) M2 U( e$ H( @& P

2 _! U3 T- \+ t, X: h  ]# e

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55* {0 j* U' ]9 G) ]6 O6 s
谢谢 ANNY的回复,我的时钟是这样的:
$ K+ x6 m( e4 x% c7 T3 `
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
; X  L4 P" j5 v0 z$ {* J
不错,感谢,
4 ~9 L* b7 O5 x, I" f3 Y 对于报告描述符还是有不明白,
2 a2 J1 J/ R& k! ?& A) {( C. k
" i1 O: z2 \+ [) J
emc_ytm 回答时间:2017-7-21 17:42:03

& Z& g3 \4 I  T9 s5 f. e# p& n: B9 z7 n3 c2 N
好的,谢谢!!!5 J4 @8 b: |2 H7 E! X
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,2 b$ S! z! i* n) L4 f: w9 A% f
我的现在连上去都是发现为低速设备
7 Z; m0 j) ?: ^# q9 w. K5 z40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常4 t2 t0 j. V! J6 D# a$ N# 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 的线太长了,   & K' x( U! c- R; |
6 w( K7 u+ L+ s0 e% s# l
缩短一些接到电脑上就可以了。5 v/ I+ F  F6 z' \/ e1 o' C

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