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