本帖最后由 anny 于 2017-4-13 15:04 编辑 + @; j8 ?2 p$ b) \ 5 g# g6 V4 |: R( V# k3 j 一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单: 1、配置时钟、USB选项及管脚功能,有二个LED和二个按键 2、选择USB功能为HID $ |- s @/ `3 M 3、配置时钟% L, U- `, S0 F 4、配置IO口功能" G; P8 ~ T. C+ a 这样就完成了配置,再生成工程,整个过程不到1分钟。1 W K: ]$ N. K 当然还要在工程里面添加必要的应用程序:' m) ~# D* w& Y 1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容: 2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序: . f, z6 l# P, [7 n" K# | 3、在main函数里面添加如下内容: / ~; o! f/ G: X' P3 v" w0 @3 f 这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:. t. e" Q1 c. X, D 上位机软件:1 V: D2 Y2 K1 R6 R 1、连接图: 2、上位机控制板子上的LED:3 L% H. o* i X% ?5 \ 3、按键信号反馈给上位机:$ N3 Q$ G4 E7 W0 Z4 l7 w: P0 X 附件:6 j2 w0 a d/ u `' R |
参与人数 6 | ST金币 +8 | 收起 理由 |
---|---|---|
ddyyzz123 | -1 | 很给力! |
stefy | -1 | 感谢分享 |
a15815760472 | -1 | 很给力! |
gla19930103 | -1 | |
子曰好人 | + 10 | 很给力! |
努力的人 | + 2 |
你可以看看这个
# Z( q }# E0 A& L) O8 s
../Src/usbd_custom_hid_if.c(48): error: #146: too many initializer values 直接复制过来的不知道错在哪?
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
能指点下不?3 x% x6 N( d" {. [( m! b0 _/ e/ E9 u: w9 M
查一下是不是分频不对
& |& c% w6 J. K9 z6 l
éé¢å¥½å没æUSBæ¶éçé ç½®
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
不错,感谢,& |# H+ ]+ [9 q: t/ }9 B6 A1 E
对于报告描述符还是有不明白,
5 ^+ |) B2 a: d
好的,谢谢!!!& E' n. J# \5 _& ] I1 {
我的现在连上去都是发现为低速设备9 I8 r7 J/ z; R! }
40h Should be 8 bytes for low-speed devices --提示这一个,所以不正常
我现在仅是使用DP 也就是D+ 上拉1.5K 到3.3V。
缩短一些接到电脑上就可以了。
' g) n0 w) r( g& o- ?. A3 X