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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
/ [8 ^: O" Q6 a4 _7 \
) Z, P4 l# \0 _0 ]7 f一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:: }/ c4 a; k) n; n; s! O& {
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
4 ?: h- j8 K# ]  [ 1.png 9 i) e" t% r  d3 L9 }. _* r
2 e. w2 C& P8 N- l4 _
2、选择USB功能为HID
. o+ f) X- Y  D7 O# C/ {0 k 2.png ; w9 }6 O, `2 _) ?0 l6 B

7 X6 v$ Y1 H2 j: S, y3、配置时钟
3 I. ^1 i3 ^! D$ a. r) Z7 t1 ^ 3.png . S" \3 n# Q0 I) P# ]0 ^" w( g3 q0 G

+ g* b" t. Z- w4、配置IO口功能- h0 G  }7 t2 a1 K
4.png ; O% ]3 b7 _: h' f, C4 W. u; \

" T6 n5 g4 J: S0 n' N这样就完成了配置,再生成工程,整个过程不到1分钟。0 a& D6 F( \2 v6 U9 _& e  K
当然还要在工程里面添加必要的应用程序:% q4 {! g2 f) n" ]" M5 b) n
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:- G4 O& F+ \2 p" ^  c; J5 _( s
5.png 0 v) R% W$ f$ d  H
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:: P8 r) e6 p0 x8 V& s" ?
6.png # J& ~) m# S" a6 n8 J

: I+ ]8 P5 U) P/ x+ e3、在main函数里面添加如下内容:
% a. n) j. ]5 K: b' R- t, K 7.png
6 C/ U( b2 `. l& r5 j' M" n+ z+ ]. q% h- _' q7 q# O' b7 N
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
+ b" ]. q: }) j% r6 O/ I6 h上位机软件:, U  C! |6 u0 |( ]
QQ截图20170413141519.png & S) G1 @# A+ W. ?2 n
1、连接图:$ T& j* [: @+ ]2 m  s/ u& d: ?
P70413-141700.jpg 5 p7 ]& I: E* u  Z1 h
6 u5 K7 I  e- D) @
2、上位机控制板子上的LED:
2 g4 |8 U( ?) G/ d P70413-141923.gif 2 f+ {: C+ C7 M2 m. D$ r$ D

( D! U! `* _. f- p3、按键信号反馈给上位机:% ^' y* I: s3 H' h- p
P70413-141954.gif
( i9 m% w5 Z+ l
  _$ K- q3 L* n5 K* ~+ s/ j) r2 l附件:; r7 ~6 Q& r: l6 `4 @4 \
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
( T7 V. H, z* l' O' `不错,感谢,
/ X4 U) X( b6 q 对于报告描述符还是有不明白,
5 i9 ?4 u2 `2 E$ i7 [* }2 h: i, t
你可以看看这个 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) */    K2 x; z* u# w* R4 V

& b0 e- X! Q7 R6 ?6 h/ n../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 编辑 3 o6 `. T4 J0 @. m. e2 [

& P' W' h) |* z" k( p9 ?请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。6 Y- r1 s9 y+ T0 u: `
能指点下不?
& H/ B  }  E2 f
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
( y0 F8 j/ r: u/ K: |请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

# ^- v$ T9 {. b查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
* u* u/ c. |; g+ F
3 }0 h6 x/ ~- Q, ^# `; O

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
! F6 p9 X. e  d. H谢谢 ANNY的回复,我的时钟是这样的:

: a, O3 w) _  y: A9 i. A8 ^/ x用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
7 r. |7 Q! w8 }* _7 ]  U# L' L8 s
不错,感谢,
: G5 n6 V2 N+ K 对于报告描述符还是有不明白,& A4 s0 [4 m8 H" r7 n; O- I0 @8 w& u

! d  h. g8 O) W0 v% q+ v6 {
emc_ytm 回答时间:2017-7-21 17:42:03
/ \9 a% n0 D  c* G# a

7 n2 A1 e* p, P% T/ D$ J" a好的,谢谢!!!% i" |( |7 [: A' r0 U
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,! w6 r* y$ h5 E* a
我的现在连上去都是发现为低速设备
0 K9 s6 m3 O* x8 [* _5 C7 c8 N40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常% Y: ?0 R, k$ Z5 J: x4 F
我现在仅是使用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 的线太长了,   
" [0 F9 t) u' p; r' [8 j+ v
2 N6 X8 e2 S. h5 n  }+ s 缩短一些接到电脑上就可以了。
3 f1 V! e$ N( F- C8 `
# X# h7 N# L; T  Z* o  l
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版