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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑
: Q- X; i, T* D9 s% V* s$ O
# F7 w: x, J- D; ?! x; C  n一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
  A+ i  L9 `0 w: Y6 _1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
1 d% {3 k) N: _( u 1.png
" O5 _- m( U2 t* [+ t) U" ~4 X* B6 m7 z  Y; ^
2、选择USB功能为HID  v% x, H2 K6 d1 K
2.png
) f5 r% O* b) P, c
& Y% `( p6 \+ h. m( e0 z3、配置时钟' h: [" S$ R: V4 l/ E: K* T( X  n
3.png
1 A6 _! F0 H" p7 r! }' X8 \
9 p) ^1 ?1 Y8 o2 l1 m4、配置IO口功能" A3 S8 R6 V) U2 M5 d5 o, l
4.png
+ k% ]9 @$ B" ]2 k+ j) e( o' ?+ y( L+ X/ e
这样就完成了配置,再生成工程,整个过程不到1分钟。
5 e: u; p9 i; M0 g2 G% [1 e+ ?当然还要在工程里面添加必要的应用程序:
, N7 n' z: i5 Y6 J0 x1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
. Q9 e) h/ H* i8 H' H2 p 5.png " U  F8 b8 b0 |6 p3 O8 P
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
6 K) ^: f- S$ I/ o3 O0 |' ^$ [8 x 6.png 4 F3 B; U, ~4 A2 D- I) m) K& P" E. d% Q) |

' M* b, |; o  a: \" T3、在main函数里面添加如下内容:4 P1 L2 p& X  N2 a' }' q& {6 C3 G2 `
7.png + ]: z$ t* {5 C7 v* c+ R

* |/ x# s) i/ _这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:4 \/ m7 j8 z- V, T
上位机软件:
. O2 `* L# Q/ }, X% G- ~ QQ截图20170413141519.png
9 \3 R- w1 i6 j; U! t4 m/ F6 X( L1、连接图:" x) D, `, V* o! O6 t
P70413-141700.jpg
6 P" O8 U1 h/ c: c2 ^+ A: O3 p- o) T4 S. u) Y6 o9 q# H( s
2、上位机控制板子上的LED:( L+ i! S' Z* n' ^7 E" W
P70413-141923.gif
) N! W. M: F$ w' S
+ o' A* Z0 t7 y% M3、按键信号反馈给上位机:
' N! V: [9 x- J3 S$ G2 D; [" P P70413-141954.gif 3 g( m- X  |. I* I. e3 A3 B$ g
+ n5 R! [( z9 o* P  k/ N% O! O5 u( |
附件:
5 |% M# X% F2 f* {% C# g4 X- h: { 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:59
# q' Q5 V6 ~0 n; [不错,感谢," {' B5 i2 ^% ~
对于报告描述符还是有不明白,

9 u( \7 P- r6 J& d你可以看看这个 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) */  8 r$ x" C3 C5 t  ~3 ^, W4 V" h
% t. p/ \8 b( g
../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 编辑 - H* e) M' p2 {4 i$ [  F

* [8 G  K7 q4 b% L# \  J6 Y) M& T请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
* o- Z7 [% W* D  L 能指点下不?/ L' j+ u  `) E2 s
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:416 ?6 `, s' O0 y: `- J' b% ]
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...
( \; q" w: G6 m: o
查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:( P' a, L: g% M( x: m  Y

1 E1 D! n4 i" s5 I2 R" z

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55
) K# X  p0 T* E6 j, j谢谢 ANNY的回复,我的时钟是这样的:
7 }. y: {$ J3 b: @
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37

) M# V% C# D0 U: \不错,感谢,
% s; c& t; h8 r, P$ B 对于报告描述符还是有不明白,, G: x7 Z# ?6 |$ C4 O, C- b

7 Q8 B; {* ~' J, M
emc_ytm 回答时间:2017-7-21 17:42:03
/ r( |9 N4 A, |) d) l) }

( s  G) x# q6 p6 g  T! ?* z7 y+ w5 W好的,谢谢!!!
2 F2 t. {& j  N- `2 @& {* @1 ]  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
6 K; t* O0 n9 E1 S# V4 A3 |1 w我的现在连上去都是发现为低速设备7 m5 L* a( g8 Z, Q
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常: F! A# I4 h4 V
我现在仅是使用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 的线太长了,   
) J/ l4 B+ V9 c7 F1 |
- F* t, i3 q  I, h( N* E) p9 ^% n 缩短一些接到电脑上就可以了。
  b. |) x' {& L4 e6 X% t
% z4 k6 Y+ P8 [4 T9 v

所属标签

相似技术帖

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