本帖最后由 anny 于 2017-4-13 15:04 编辑 ) z* h6 R, c4 b* ` , Y0 @8 M2 k; I 一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:5 r) d% c$ y, F' b' r8 m$ N 1、配置时钟、USB选项及管脚功能,有二个LED和二个按键' w) S& X6 U, E, k 2、选择USB功能为HID 3、配置时钟+ F: @$ i: G; w0 V& t) G3 K, i 9 e4 p) g9 B5 g0 Y7 x! s 4、配置IO口功能% D3 K" X; Y, X# U6 }4 E+ ~ h" N 这样就完成了配置,再生成工程,整个过程不到1分钟。+ B8 Q) {. S" n1 ]! P$ y% H 当然还要在工程里面添加必要的应用程序: 1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:! W3 R- z: B. ?4 ` B 2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:6 X1 u+ O ~: b4 X 3、在main函数里面添加如下内容: 这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果: 上位机软件: 1、连接图: + u5 j7 _+ c& Z, {: P" _ 2、上位机控制板子上的LED:( y( W2 v+ O3 }4 \7 x( b5 R . }8 m$ c+ r! Y' J5 o* B& J9 c 3、按键信号反馈给上位机: 附件: |
参与人数 6 | ST金币 +8 | 收起 理由 |
---|---|---|
ddyyzz123 | -1 | 很给力! |
stefy | -1 | 感谢分享 |
a15815760472 | -1 | 很给力! |
gla19930103 | -1 | |
子曰好人 | + 10 | 很给力! |
努力的人 | + 2 |
你可以看看这个
../Src/usbd_custom_hid_if.c(48): error: #146: too many initializer values 直接复制过来的不知道错在哪?
n. [3 W& _" Q9 k m- {& U7 Z
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
能指点下不? x, D% I4 a6 P! }" q
查一下是不是分频不对
5 c1 b* Q( d9 D6 G
éé¢å¥½å没æUSBæ¶éçé ç½®
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
不错,感谢,/ P1 W/ b2 y& h2 O/ C) |
对于报告描述符还是有不明白,
好的,谢谢!!!
我的现在连上去都是发现为低速设备. Z f p% A/ d" b+ x
40h Should be 8 bytes for low-speed devices --提示这一个,所以不正常) v+ [/ G3 T& j: O D, S& j9 g
我现在仅是使用DP 也就是D+ 上拉1.5K 到3.3V。
缩短一些接到电脑上就可以了。/ g; y! M$ ^( k) E# h