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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
2 C+ S1 A1 ~) v" [( D" {* P) m
5 S4 M2 H. a  Q3 F& W2 t一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:/ p8 G4 P, h# K4 ~6 z% Y
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
+ j: l" ]5 P" w 1.png
; L, u) U, J. B+ J
8 L& X! u8 o: F2 S" g0 x) m# e$ k2、选择USB功能为HID
( R4 o3 x: [- S- D2 A9 z( K 2.png 4 W5 Y3 y' q' g! J3 _

5 Z' C! v9 a! r9 a* K3、配置时钟8 J8 L1 }, n! R6 o' c' H8 j9 n' u9 R
3.png
5 U' U, @3 |4 |$ D$ T5 X$ S8 d: L1 \: Y2 L
4、配置IO口功能
% ]9 n% }0 |2 m( P  J! z! n1 W! n6 T 4.png
5 F5 y, K3 w# j5 ~" o; K
' `& U2 ]: w3 t+ e0 e( {1 e2 X这样就完成了配置,再生成工程,整个过程不到1分钟。
: o9 g) ]- J% v0 {$ w当然还要在工程里面添加必要的应用程序:( h/ e+ a5 E" c9 P
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:' a& M5 t1 g, A, p& r! g; k: ?
5.png 9 x$ b+ I) h2 o) E
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:5 o! u5 \$ o% g3 |6 m
6.png
; s% G8 |5 J8 t2 E9 \: A( T+ Y& q
( I3 X8 p4 `9 \) d% R0 A7 ?0 i: t, ^3、在main函数里面添加如下内容:
. P  O# f( o- R6 q: E 7.png
, d5 f4 y- k* J. J9 r  A( r
0 j$ A+ p$ }5 j2 W/ R这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:: ^. A0 x2 k/ P- N& K' P
上位机软件:3 b( o  I6 s& t. o3 D/ E# B1 C; \
QQ截图20170413141519.png
6 I8 V( M; q; u2 ?, M1、连接图:, \* B9 p; p' n0 Y  i
P70413-141700.jpg ( N# `1 P6 \% t3 U, d# O/ n
5 J, K8 y- r; i3 ?
2、上位机控制板子上的LED:
  W& c' {% s" ]  t9 [ P70413-141923.gif
+ i# T  c9 d5 F* W5 q& v2 Y' d) ~2 x* x( \
3、按键信号反馈给上位机:5 Q+ q1 O. u2 ^3 m1 [' O8 f* W
P70413-141954.gif
; q( Y; v# ]' K( |% J2 E6 q: x4 k3 O6 k2 E- U
附件:
3 q9 B3 n4 S) x8 A  E. Z8 h 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
9 k- _4 N( J2 V" r0 l不错,感谢,  m0 [8 N$ D3 A# |1 m
对于报告描述符还是有不明白,

3 ]+ U( H2 V% k# `! _你可以看看这个 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) */  
% N: e$ @: i! {- h1 S  b# G% b8 K' c# y% {/ Q% {
../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 编辑 / Z. r/ l1 Q& ^/ c  ?3 W+ o
+ R& C9 \% J1 r& u( l4 G
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。& L# B' M9 K) T: R
能指点下不?4 `. o0 N( V1 W4 Y% F4 x
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
) J, v5 p+ w8 I% v请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...
+ H# u8 B0 p8 u7 i
查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
0 s- [3 d' g0 f
4 ^, Z/ \# t  V1 j3 x0 Z/ |

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
. u+ x; F" W1 |9 R: T( H8 W谢谢 ANNY的回复,我的时钟是这样的:
% d& q3 ~, v$ e
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

5 Z+ R7 m/ f7 n) R+ [4 h+ D& S# N不错,感谢,: O: s& E7 D9 P; e/ F1 L5 m
对于报告描述符还是有不明白,) w% Q; \% y! ^: }4 |+ V5 K

5 I2 b. Z' i' @/ F6 h! {
emc_ytm 回答时间:2017-7-21 17:42:03

4 ]/ U# ^# Q( A& ~' U- O& a3 ~, H! _  X% R/ O  R, l0 T/ @* y
好的,谢谢!!!
. e) B/ @# V8 y# N4 |* j  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
. |$ f$ @, h# M- ]) R我的现在连上去都是发现为低速设备9 L* E( S. ]" _- a5 Y3 w
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
! B% u! C  i: M# l我现在仅是使用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 的线太长了,   
+ }, x  k; ?7 l; T5 \$ c* n! _0 c8 ]; ~0 l
缩短一些接到电脑上就可以了。% J0 o5 p2 {* y& B

, p& `. p+ V% A# ^* l! n& ?2 ?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版