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

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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
7 k5 B) F. k' S& M) F4 k% o2 g) o
8 p2 q# \0 |* e/ ]. u一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:6 M5 _  f  g* Q' w0 s
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
* S$ h  W) Z9 w4 W7 Y, u 1.png $ B/ J- w8 d; U4 d, m# G

; `: B5 M7 u5 l5 `  i  h$ K2、选择USB功能为HID0 |$ _: O' \# I3 M- r
2.png ) j) I; D4 j; e6 G6 k5 p1 I# \
. j+ E8 Y$ ]# f, p
3、配置时钟
1 e, R" C9 h0 t) i" [( O 3.png % K7 b& U1 i6 t" @, U. O' c

- @0 x" M. v0 f2 Q$ Z/ B# i4、配置IO口功能+ X+ n0 M( o' ]1 |
4.png
0 \! x9 [# ?) k6 Q3 c1 {- D
! o' n5 b' ~6 I! g这样就完成了配置,再生成工程,整个过程不到1分钟。  w4 I& E+ z+ d) M' {' m' M5 ?
当然还要在工程里面添加必要的应用程序:
6 l; [4 v5 y) l4 m: B) {1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:% o! R  c5 ]; H. z  S, O6 V
5.png / m1 r- ^( U* w8 D+ y
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
: X3 ~$ D7 `# m- Y, Z# R3 l8 M 6.png
; {& A5 b, _: u. s, Y) R1 }$ M8 z% @8 U: r/ \  U- f; \
3、在main函数里面添加如下内容:/ g" [; K6 j* h* i9 z+ g# [' }
7.png
$ V' p% V2 q$ s8 e8 C3 g2 d+ ^( {$ C7 D( F' ]; R$ W& p4 r
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:; p: A1 G. _2 L* J* L+ R0 o/ b
上位机软件:
$ v& _" q1 S4 R9 v4 I QQ截图20170413141519.png
' F& t9 L0 T* H# m1 u, {) ^3 n1、连接图:# C3 G- |! A! Q7 |5 @. L+ U
P70413-141700.jpg
6 e5 E  ?% l% c2 y# ~( A
6 u% f* @7 B# A2、上位机控制板子上的LED:
3 \% n) R0 F" d1 t4 w P70413-141923.gif
2 f5 f6 P) K. T- X+ t5 F7 D$ v1 y% K. i+ s/ J/ C
3、按键信号反馈给上位机:# j, n; M" G* }& U- X" _
P70413-141954.gif
( R; `; K( z8 H$ r3 B# D9 {4 j& Z6 G+ x; [6 a% u" N# {
附件:1 `; [( ~8 C. W+ i6 ?4 N1 ~8 M. K
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! @. H0 D7 F# |; f# z) m
不错,感谢,
) G+ r2 G; t5 W! l% ^( C 对于报告描述符还是有不明白,

* Z% r( C+ C( x: L0 y( m你可以看看这个 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) */  . n5 N( Z# v" m1 R3 D# n

/ D: ~+ M: V3 `- |) a5 i  N6 N1 u9 w3 [../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 编辑
- I( \. q& l) A) z* I: d* u
' G% H- x7 D! o* i请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
- d3 C4 T* ~0 M  Q# W 能指点下不?! O$ `" y# \* H& X
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41$ Q) k8 Y$ [3 a  o# M% g
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

. p/ o. b3 z$ ^3 @; A查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:+ `, e! @- K5 E' f/ b1 k! E* ~

% w& b8 t) ]8 O! @8 X% I4 E

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
! z9 }- k$ K5 ^+ y1 ^谢谢 ANNY的回复,我的时钟是这样的:

; ^0 r6 a$ ^1 Y用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
$ u1 W6 C, H1 K
不错,感谢,
+ X) B3 m3 `% n 对于报告描述符还是有不明白,% u: x' h& V; s3 i% W

. N, K" O2 _) ~( n2 |+ D
emc_ytm 回答时间:2017-7-21 17:42:03

% @. B$ p3 r: d* _  \7 ~3 A. n* ^
, h+ a! m. ?2 u- Y8 U4 p" T好的,谢谢!!!
% n5 r3 h$ [8 D! R& a  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
" d( q' D7 W! [3 {我的现在连上去都是发现为低速设备3 v8 D. S! {; M* y8 y" S+ j
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常& m( C: ~/ s4 h; ]4 ~
我现在仅是使用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 的线太长了,   
' t2 g# n' b: w. U4 Y9 c8 s& N
2 i: F$ M! X5 c 缩短一些接到电脑上就可以了。" G* f9 w# \9 G) \, e5 Z4 R
& s5 H7 a9 b6 M) h$ ?0 o: h6 f7 t" W
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版