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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 1 t+ F4 F6 I  Y0 `( _4 g

+ I9 \& L5 W6 w! P; T一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
; H' ~, M3 e1 l8 \  q0 G# ^& [1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
: V3 o! ~' Y4 L) t% i: M5 G 1.png
2 n: h- K; V$ M) Z
! l+ m6 B8 R/ U% w2 Z2、选择USB功能为HID
! [( E0 ^+ |$ }( t& u; E% z 2.png
& P) ?* f# C! F# ^2 x! F9 s) f$ f( B1 J/ v
3、配置时钟- `: s* F) b+ w8 N
3.png
% r9 x; u6 u  }
. C" _  J( M; u( u# l; b4、配置IO口功能' @1 P3 H3 s! D+ @, d
4.png 2 T6 @9 ^  A5 c5 }: ]7 J

, J2 H5 `5 T% h1 b* {) s' l  P0 h这样就完成了配置,再生成工程,整个过程不到1分钟。/ m' H% X- w4 o
当然还要在工程里面添加必要的应用程序:
( q0 o: e& G0 U2 K4 k( `1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
, _$ u' f* t; w2 S" K 5.png
7 w, |! m0 e9 U. Q( @2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
  }* e, Y" W* v$ o. s$ n2 }6 u 6.png
! L0 D. @( u( o6 m) w
. {4 V7 D+ M& Q4 ]# L; ]3、在main函数里面添加如下内容:
' h8 _) t- n$ l$ k9 x; `2 u' w 7.png
" N$ t$ d; C4 |2 Q1 p  a- }1 Q$ a; c1 F7 f/ N( E4 F
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
# s5 `4 Q' U  O上位机软件:6 Z; ^# c" X! Y* D5 y! m1 }
QQ截图20170413141519.png # X: b8 W( v( I! @& t% a" Y* ]
1、连接图:
, c7 W6 N, p. W3 Q P70413-141700.jpg 6 X+ \, n2 N5 }1 s) A9 j. M9 ^

$ y2 P+ J8 I) M2 l% U- d0 j& Z2、上位机控制板子上的LED:
% Z; G8 E, Y8 a' e8 X8 x6 e; M3 a+ W P70413-141923.gif
3 C* k! t; W/ p0 U. V0 k6 r1 k0 I. V! q" D1 @: |0 D; J
3、按键信号反馈给上位机:9 h; \6 U' h2 W* s1 U, o3 B
P70413-141954.gif
! V( Z# S, `) z9 K4 @0 `; I) B! b2 e( j5 N9 e' G* y! q/ ?1 U5 z
附件:( o: z! o6 m; C  K, Y2 L
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
/ F# E' i  u) ^3 F+ O" t不错,感谢,
' {% p( j8 |* o. P" _# _ 对于报告描述符还是有不明白,

0 m: k5 C  s/ m. O3 n6 y你可以看看这个 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) */  ' H3 R* @4 H  @, U4 q) L
. E. ^( x" \% m" V' T7 C! V
../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 编辑 7 X" a3 m+ |% P+ K" \

  O8 k( \# \" u5 D% E请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。3 F# h. ~3 B1 w9 `
能指点下不?
! I& f& O' U9 a. ]
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
  {4 T0 [4 V, |+ p请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

% F4 u+ _# D1 ^' P+ `8 }查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
3 y2 V# k$ ~9 f6 ]  t& Q! X" f1 F! K

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55) c5 Y% O# r# x" N/ }# }- a4 R
谢谢 ANNY的回复,我的时钟是这样的:

) C+ ?4 b/ i$ _用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

, V$ r' r4 W6 N# q2 z" F4 X. _不错,感谢,+ Z) e: }& x0 A  R. A
对于报告描述符还是有不明白,8 F% f0 g: p' ~& C* e; p7 ~
, T; s. G9 }5 H
emc_ytm 回答时间:2017-7-21 17:42:03

7 \0 S( d8 ]( r( g( t6 R
8 q1 W2 q, P+ ^, o, \# x. D好的,谢谢!!!$ Q- H1 L& v; ^% r+ Z5 G  |7 h
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,6 c) R* k* g- T. b' Z0 V
我的现在连上去都是发现为低速设备
1 ?5 H2 ?1 |6 B4 q40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
! O# ]" v: t! m我现在仅是使用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 的线太长了,   
4 @# @% t8 w* s  j) _
- w; Y, W6 D! z 缩短一些接到电脑上就可以了。0 f, X) c* e0 p( _) k
2 z! W/ H- U, L% {" `  x9 q- C
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版