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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
/ v5 L( K4 ?/ `5 j& O
; V- i) M. I+ ]4 l0 r7 \一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
! {( h! T+ ]( ?4 n7 m* n$ [1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
* h6 n- }: m. {! \( \ 1.png
0 n+ G# ~0 f: K. n# U
$ o/ F- ~( U$ Y9 m# \1 Q2、选择USB功能为HID
: `9 D7 r" Y- b  F 2.png 6 d6 I. [0 @1 q  f8 _8 I) D  P! k7 R

! A* f  b4 j8 f& s6 o% V. m3、配置时钟* J! p3 @- u1 A. ]
3.png & n8 Y2 g% J/ R1 ?1 ]* H
* X& |3 o  g7 M6 Y
4、配置IO口功能2 |' H  I0 F7 v2 `4 V
4.png " K, Z4 a( A  N7 Q

" p$ ^" c2 e: Q8 i/ F# r% p3 n这样就完成了配置,再生成工程,整个过程不到1分钟。$ k+ P8 t9 w8 U/ U' y3 x2 P1 L7 l3 t
当然还要在工程里面添加必要的应用程序:
2 e9 X0 ]  W8 Y, {! T8 m6 i1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:, f$ m% n/ S% c: k- R+ f
5.png % P( z& Y% D. m
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:3 ?1 s6 Q8 _0 }
6.png # Z. z/ R1 C# K5 ^( P& x2 {% S

+ ]1 i( r' e" M' h3、在main函数里面添加如下内容:% F4 u3 Z* V+ M
7.png
( p9 H# Q8 a" U* `
% m# P6 r: r: O这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
# L; |, L% B% W: W上位机软件:0 a9 |7 [4 E: `5 M% N6 z
QQ截图20170413141519.png , d" e8 _5 H& v& X$ E& \
1、连接图:
) n- n8 E) p  K* f$ c P70413-141700.jpg 6 N0 o* I% r8 f

2 W3 l4 d7 {/ V+ }2 A4 n( Q9 _2、上位机控制板子上的LED:
1 @  Q1 L6 w# q  A: d5 d% J P70413-141923.gif 6 Q; z3 {* O! Z: O3 F; e

: U. D7 B, e+ K- [& ^2 W' w. D3、按键信号反馈给上位机:
; G: v$ K7 X8 _ P70413-141954.gif
% ^" x8 U: C: J% b5 L
& I; R% y6 |! J  q% J$ A附件:" Q9 a( |) B" s9 f& V
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! V0 L1 v  s2 u8 N3 u0 o4 T
不错,感谢,) l! q+ H: Q. h* o, g3 S$ x
对于报告描述符还是有不明白,

* `5 T% }, u9 A) [& ]你可以看看这个 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) */  
9 t2 V1 _0 }: A$ T2 M# G) h1 H, M0 S: E6 m1 r% C
../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 `$ f& y+ O; [2 H9 z* q
5 f7 t0 T8 C* i' w
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
$ w" E3 Z- q3 L. D1 G9 g 能指点下不?2 x7 z' L  K( T; o1 I, Q% T9 N
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41* @4 f6 a8 F1 F5 R/ d! {- z1 S/ r
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

$ @& |6 ^* a- F9 g查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:% ]* a$ n- |1 |% `  y) K, Z7 d% e% P
( n2 G  ~$ V( b; U! m! W$ w4 {% G

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:553 U+ M9 i" K, Y0 S3 ?$ J/ _4 N5 ?
谢谢 ANNY的回复,我的时钟是这样的:
  j3 N' ]& R8 p% e. P" {" E
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

) F8 A" m2 b5 ^7 i4 {不错,感谢,( _5 O: O7 ]0 N. x  f; X, Y0 y
对于报告描述符还是有不明白,9 v3 G( k5 j7 O9 w0 K/ P

* U* {/ Q' s" h$ r
emc_ytm 回答时间:2017-7-21 17:42:03

5 g6 h# C) b; v4 Y) D9 [( O: L* }1 L- S0 c
好的,谢谢!!!
# [& d2 d# w0 P! L0 f+ y  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
- E/ w" q  x7 p# Z( P9 u7 Z我的现在连上去都是发现为低速设备
/ V. M, y6 w. l) n( ^40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
$ t8 T! L- _" p, Q% y) C我现在仅是使用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 的线太长了,   7 r( ~. E+ c4 c- u0 q( ]3 q0 b
9 N# E) A7 \% \2 v+ n
缩短一些接到电脑上就可以了。
8 ~! F2 e0 p7 i8 R0 h8 w1 N3 I% _& W: m  h- e, b& B' C
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版