|
本帖最后由 anny 于 2017-4-13 15:04 编辑 / ^6 R+ a, z- K$ N5 T3 X 一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:0 `' [ i: [& f. A" x6 E5 P 1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
2、选择USB功能为HID' F- M. P5 }& J# q/ a) E: M9 D
3、配置时钟; m2 s" ]) f/ z! M3 A" E9 v! f
4、配置IO口功能
这样就完成了配置,再生成工程,整个过程不到1分钟。& O" l$ N9 h) p, V& y5 B' ^! N 当然还要在工程里面添加必要的应用程序: 1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:" z3 ^3 |3 Z' l
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
' `8 c' E; ^; } 3、在main函数里面添加如下内容: [, `, D" q* S1 H: m+ H9 i
) ~ A1 j0 Y" l6 t 这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:: ]) N2 T( M- b8 O 上位机软件:
1、连接图:
2、上位机控制板子上的LED:
0 J2 b( m2 e: D: m/ H 3、按键信号反馈给上位机:
% V8 q4 Y3 j5 R* z" e# r 附件:
MiniSTM32_HID.zip
(12.15 MB, 下载次数: 6447)
|
| 参与人数 6 | ST金币 +8 | 收起 理由 |
|---|---|---|
|
|
-1 | 很给力! |
|
|
-1 | 感谢分享 |
|
|
-1 | 很给力! |
|
|
-1 | |
|
|
+ 10 | 很给力! |
|
|
+ 2 |
STM32L562DK探索板——串口通讯测试成功
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
NUCLEO-H723ZG开发板试用 ——串口点灯测试
MultiButton移植到STM32F103战舰开发板
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
S2LP 的 sniff 模式如何同时满足通讯和低功耗要求
双证齐发!移远通信通过ISO 26262功能安全流程认证及产品认证
意法半导体 STHV200超声波 IC单片简化设计
了解NFC技术优势与应用场景
微信公众号
手机版
你可以看看这个
1 \5 g7 m' g2 U/ @; ?% j7 r/ y( j" y
../Src/usbd_custom_hid_if.c(48): error: #146: too many initializer values 直接复制过来的不知道错在哪?
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
能指点下不?
查一下是不是分频不对
" v8 g( T P. F, ~) W
éé¢å¥½å没æUSBæ¶éçé ç½®
用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
不错,感谢,* O$ {) U$ O% U/ K* o1 i; D5 z
对于报告描述符还是有不明白,
9 z3 t0 a& d9 f# {% D7 e
好的,谢谢!!!# E' L4 l" S% B& Y& b6 l: C
我的现在连上去都是发现为低速设备
40h Should be 8 bytes for low-speed devices --提示这一个,所以不正常1 F8 _- A- O$ k
我现在仅是使用DP 也就是D+ 上拉1.5K 到3.3V。
缩短一些接到电脑上就可以了。6 V9 K% b1 Y) X3 a% e& O
& k# o$ i) f$ \$ g R