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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
* X6 ?  b# p4 [7 e. f2 a' l. f/ ^6 R+ a, z- K$ N5 T3 X
一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:0 `' [  i: [& f. A" x6 E5 P
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
3 {) Y  w! y* U( C4 a/ \ 1.png
" P8 b2 A* e& L2 J3 f5 U
# Q7 }7 t' t# G2 ?0 R2 d% c2、选择USB功能为HID' F- M. P5 }& J# q/ a) E: M9 D
2.png $ p, c) q' P+ q6 C4 t, u) I

. v1 w( N% T$ }0 X3、配置时钟; m2 s" ]) f/ z! M3 A" E9 v! f
3.png
8 E1 F: d+ G! p) G" k5 I
7 }4 `9 R  R1 Y7 n' B/ Q! u4、配置IO口功能
+ H5 D! W7 J0 N! N2 y" T, _5 M6 |# G 4.png
! o  P) z. s+ Q2 p
0 p% }- P& P& Q" k3 E这样就完成了配置,再生成工程,整个过程不到1分钟。& O" l$ N9 h) p, V& y5 B' ^! N
当然还要在工程里面添加必要的应用程序:
2 n! d' L# v; o: i; S- m+ j4 E# Q1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:" z3 ^3 |3 Z' l
5.png 6 c. v, o  q: [+ n  B
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
8 o+ S% d: w% n 6.png
( ^0 D) G3 w8 P4 M+ E' `8 c' E; ^; }
3、在main函数里面添加如下内容:  [, `, D" q* S1 H: m+ H9 i
7.png 9 n- Q1 D% T9 w
) ~  A1 j0 Y" l6 t
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:: ]) N2 T( M- b8 O
上位机软件:
* A7 d: {/ v5 E( K# T3 ~2 ?! Q QQ截图20170413141519.png
3 ~0 g: F9 ^5 s0 z) r' [6 I6 ~1、连接图:
1 p% ?$ R  `* ]* @4 b P70413-141700.jpg 0 D: g4 ?; a* D0 X

+ p' H" }) `9 h8 L2、上位机控制板子上的LED:
1 V6 e/ e8 a! M6 t$ \9 ~$ F P70413-141923.gif 2 J  o0 i/ r* \) T' k
0 J2 b( m2 e: D: m/ H
3、按键信号反馈给上位机:
3 l0 ~% Y! M: x! ~ P70413-141954.gif 6 ]8 U+ N3 E1 ]4 N, P
% V8 q4 Y3 j5 R* z" e# r
附件:
% _" U. E' p: P- | MiniSTM32_HID.zip (12.15 MB, 下载次数: 6447)

评分

参与人数 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 }" O3 J+ }! _
不错,感谢,
! a" U8 f4 m& ?- I: | 对于报告描述符还是有不明白,
: E6 `2 f6 Z3 D9 [
你可以看看这个 STM32的CustomHID的各描述符介绍.zip (2.94 KB, 下载次数: 688)
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) */  & y4 ?, {4 X0 a5 K2 t8 u% r% q3 {
1 \5 g7 m' g2 U/ @; ?% j7 r/ y( j" y
../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 编辑 * J, \/ ~9 m3 g, _

. b/ q4 z* h9 W. [& u+ c请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
. v) O" T1 ~3 T/ R5 Z! O+ Q  `! z 能指点下不?
( U# H9 X: `) }
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:412 u; R$ q$ O6 x; m) u2 O" d
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

$ j. U# m9 a) H% F- |* f, ~) v查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
) L& V7 B) e: U" v8 g( T  P. F, ~) W

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
0 n7 U' e1 v: T+ d; }谢谢 ANNY的回复,我的时钟是这样的:
4 l9 }" T5 D0 ]. l% ~0 `- J! G( S
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
1 O1 C% x& t& }6 `# y) c
不错,感谢,* O$ {) U$ O% U/ K* o1 i; D5 z
对于报告描述符还是有不明白,
2 O7 U4 ]4 a% P1 C# U' Y
( i( P. w6 s: S+ R) A) `9 Q% ~" ~* w
emc_ytm 回答时间:2017-7-21 17:42:03

0 @7 T  h; Q$ u/ k* q  k9 z3 t0 a& d9 f# {% D7 e
好的,谢谢!!!# E' L4 l" S% B& Y& b6 l: C
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
0 R  \; B- F4 |5 x. _3 W$ z我的现在连上去都是发现为低速设备
# `0 P0 M; X" ?# e0 A- K# \40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常1 F8 _- A- O$ k
我现在仅是使用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 的线太长了,   2 d1 ]- M6 D7 m5 x( {+ e

( I8 j1 h% G  n; b7 _, o 缩短一些接到电脑上就可以了。6 V9 K% b1 Y) X3 a% e& O
& k# o$ i) f$ \$ g  R

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版