请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 4 W8 {1 f2 Z% A* H
" e; ^0 h. t' V6 c1 H
一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:/ U, I8 @/ n6 H' A$ T' L
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键  \: v+ C+ `; @5 Z
1.png + Y+ L' D* v/ K$ r! ^  T
  d0 E) d$ F1 R
2、选择USB功能为HID
! @9 l! l, J  r# [; A/ X 2.png . F5 @& C' P% p* |- Z: ^
- M1 k# Z$ m3 p4 y+ S5 ~; b, p" M
3、配置时钟
, o' X4 ?' [; N1 G( U, o$ d3 D/ t 3.png " J5 D& }. R( d- w5 ], L

' @- z$ D6 B- M0 e8 {$ {9 S4、配置IO口功能
' |7 p' J/ C" R  O 4.png 8 R  _3 h, Z  h" Y' m% ^8 _
$ I) D" k" J0 Z: z4 ], a! _% M" W
这样就完成了配置,再生成工程,整个过程不到1分钟。9 Y$ {2 J; U7 `1 i$ s, R
当然还要在工程里面添加必要的应用程序:
% z0 d9 x' ?9 E- k! Y/ D1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
* W1 J3 b- P/ n" I! Q2 W& z 5.png . c/ _! H# e) z9 Q
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
1 L( p& h; z; i1 G7 j5 x  ^! @; { 6.png / b$ ~( P1 L. W9 X3 P. q
* h& J2 [7 Y5 j2 P  Y7 ]/ s
3、在main函数里面添加如下内容:: E8 i3 M# z/ X3 _0 b
7.png 5 c& K  f' ^) a. @: k# R
$ g  t- F' y  `% U* A9 `% w: V
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:, C- G/ l6 H" d
上位机软件:
: L& U9 K2 Y2 Y" v- q QQ截图20170413141519.png
* K3 Q7 N9 L' D0 t' W& \1、连接图:" s, b( f4 P# c
P70413-141700.jpg ' B& @% T% \: N5 {

; |. [6 F' v, y; Q% w5 {: \8 g' \2、上位机控制板子上的LED:
1 U) N% y$ l  X- f- | P70413-141923.gif # R3 Y. w: m4 c' t
+ O: _( V# A6 n/ N: c9 p, j8 i
3、按键信号反馈给上位机:" G8 Y, Q: L. s* v5 C( l* k6 u& G, m
P70413-141954.gif 2 U* P% U/ r/ q" |% a% i7 A
+ s- u& D0 _* R& b! P; {
附件:+ f1 j( f; k( c
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
  s* p' i7 z- g( P. N不错,感谢,# W+ C4 d  y7 q; T7 }! t3 G; y
对于报告描述符还是有不明白,
: Q$ a  e; ]* q' m' @% ]% l! v# D+ n/ O
你可以看看这个 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) */  
; O5 R/ ?1 p+ }  x9 C% r$ A- g
1 h- s1 m1 w. S../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 编辑
2 f1 l  U) j% p
0 w  A% P8 L1 q/ q请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。5 ^: X3 N: V% j: e6 P$ D
能指点下不?
/ t6 u. ^& T; q! m0 P+ f# m  H
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:417 `8 A. Y- d$ w9 u, W! u% Z
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

5 [4 p4 z* c  ]( J/ N查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:1 A: ?3 ]- u3 W7 D3 [

' x: v9 |1 k" D- |/ f

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:559 N3 ?# h" }' D" I* ^1 \4 V$ Q
谢谢 ANNY的回复,我的时钟是这样的:

! M: D- Q9 _! k; q+ P用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
+ Y5 I! I5 v, N7 X
不错,感谢,
$ O! N7 Q( t+ D' i 对于报告描述符还是有不明白,# H6 E: f. t- j. x! U" h
8 r' i) X' C  q6 M/ w3 H
emc_ytm 回答时间:2017-7-21 17:42:03
. C. U, K: G7 v2 n

0 Y) u2 [; W: z0 S% x好的,谢谢!!!
" V$ x# u. ]$ [  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,# d  ?5 [% T& ^. J* n
我的现在连上去都是发现为低速设备
! I" E- n' e0 H% o40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常9 ^& ]# \, F9 W% t
我现在仅是使用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 的线太长了,   
9 B& R+ S0 f7 M/ o* |  c
  ]* l: z1 G4 W5 U% d3 e4 n 缩短一些接到电脑上就可以了。
6 O" @8 N6 ]: H! P0 w! r5 Z2 T4 I- Q6 L
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版