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

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

[复制链接]
anny 发布时间:2017-4-13 15:03
本帖最后由 anny 于 2017-4-13 15:04 编辑 . e0 E5 m+ b9 l4 l

% g' z1 N; k* k- x2 f一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
1 ^1 H0 e2 v( A" x4 z1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
7 B1 ^" F: w. d+ U! g0 l, E 1.png
; z. M! R3 `$ J' ?& q, [5 v2 b7 W) p% b6 x0 @; q/ t
2、选择USB功能为HID
8 v3 T& X0 \, ^7 d. N 2.png * q+ T6 U" n6 U* z

7 O6 Q( h2 m3 Z2 T6 |- @0 a% p: V! G3、配置时钟
0 ]; {- V/ i) o0 q3 ^ 3.png 7 L5 Y" }% Q' ~6 w0 N

9 [: \- ?/ V, M/ F1 @3 [, x- |4、配置IO口功能
1 l; h0 C& R' \4 V9 R 4.png
! Y! Z3 \* N) m/ P* Y- |, e, [! ?% x$ T* W/ z
这样就完成了配置,再生成工程,整个过程不到1分钟。
% m. a$ |& l" B当然还要在工程里面添加必要的应用程序:
4 b2 t  u6 U$ H1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
/ j4 s$ `; p5 }) ^- ^3 o; n 5.png
/ f$ X  B  c% _+ l( P2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
* T' w- _% e) n7 O: J  T# j$ [ 6.png
- o: p8 w6 |, t/ P, p( Y  O$ D$ U4 W& j1 A1 Y7 u
3、在main函数里面添加如下内容:
5 ]/ _4 e4 I  j- x9 Z& Q9 x 7.png
! q% j- t$ s1 n, N2 q! }2 T. N$ L' X6 w4 v( W& e
这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
4 o8 @# R: `4 F5 a' k上位机软件:
; [1 w9 s* j" g) c QQ截图20170413141519.png
* l! ^1 k& R* b* o. A8 v, j& q1、连接图:
, E+ R4 a  _9 W5 c) N5 i7 s P70413-141700.jpg
+ r" c, @9 k+ s( @# Q: _% y& E# j' E  ]- P8 r+ G& Q: Z
2、上位机控制板子上的LED:/ v5 k; {  k$ \
P70413-141923.gif
2 K* C( B# U- [' o4 W8 }/ [" c( {, s+ P
3、按键信号反馈给上位机:1 o1 w( |4 h' h( O
P70413-141954.gif 6 Q/ j* G: m* V! R" L- u

: H" z" o+ V% _$ K附件:
! p* \/ @0 J% K- l  C4 {! ~ 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
/ J8 \0 Z! X' E0 M不错,感谢,3 v; U# p2 j, G- h  O
对于报告描述符还是有不明白,

; |1 j% k8 K3 j, K你可以看看这个 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) */  ) K: f/ X3 h5 l- A- s

2 E/ d( u0 I8 @9 T" l../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 编辑 * C! y' y; A3 _, n

: Z1 t" b% n/ L2 X' Z请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
& R# K( J' h+ m) E$ Z; V- E 能指点下不?
( b. b/ t8 r$ e% G7 F# c
111.png
anny 回答时间:2017-7-19 08:22:16
hereandy 发表于 2017-7-18 15:41
7 }2 L5 T. X5 r% B& q% P请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

0 X3 a" D* T5 P! F# {) U查一下是不是分频不对
hereandy 回答时间:2017-7-19 10:55:29
谢谢 ANNY的回复,我的时钟是这样的:
: C8 M/ l# _* p" {0 N" @* h# S" o5 `5 W6 b6 P

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

里面好像没有USB时钟的配置
anny 回答时间:2017-7-20 09:13:49
hereandy 发表于 2017-7-19 10:55( d1 c* o" ~: N; N% S) c+ e
谢谢 ANNY的回复,我的时钟是这样的:

7 Q6 e  b) E2 J( l# E  p# }用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
emc_ytm 回答时间:2017-7-20 20:59:37
0 O8 x$ o4 ]# R
不错,感谢,
" ^- |2 _; N+ {  k9 z 对于报告描述符还是有不明白,
* j. E5 t3 s" K# V1 u7 V1 M: s* d! n3 V
emc_ytm 回答时间:2017-7-21 17:42:03
+ H4 d7 E" v! ~! r7 [2 I3 N5 w

, E! M& o; r5 o3 a/ w好的,谢谢!!!$ M/ ]7 b# I2 q% E6 U4 G
  
emc_ytm 回答时间:2017-7-21 19:34:43
请问一下,你的硬件是如何接线的,
$ u0 O% a* f0 d5 ?) _$ m: g, b我的现在连上去都是发现为低速设备) V: J5 W# `0 r" [
40h Should be 8 bytes for low-speed devices     --提示这一个,所以不正常
& n5 `8 l% T# Q! Q我现在仅是使用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 的线太长了,   
" s0 e: ?& Z8 v1 Y! b4 f
$ {) Y# s* w* G8 a  P9 Z 缩短一些接到电脑上就可以了。3 Q: S& \: k& O$ z2 B

/ D' y! b2 c9 p$ b! n7 [# R
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版