请选择 进入手机版 | 继续访问电脑版
搜索
查看: 51537|回复: 154

[原创] 通过STM32CUbeMX建立USB HID的双向通讯实验成功

  [复制链接]

该用户从未签到

22

主题

1027

帖子

12

蝴蝶豆

金牌会员

最后登录
2021-7-23
发表于 2017-4-13 15:03:22 | 显示全部楼层 |阅读模式
本帖最后由 anny 于 2017-4-13 15:04 编辑

一直懒得去看USB的资料,却又对USB相当好奇,今天就拿块板子做一下USB HID的实验。板子的芯片是STM32F103RCT6 ,使用STM32CUbeMX配置相当简单:
1、配置时钟、USB选项及管脚功能,有二个LED和二个按键
1.png

2、选择USB功能为HID
2.png

3、配置时钟
3.png

4、配置IO口功能
4.png

这样就完成了配置,再生成工程,整个过程不到1分钟。
当然还要在工程里面添加必要的应用程序:
1、在usbd_custom_hid_if.c文件里面的__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS数组里面添加如下内容:
5.png
2、在usbd_custom_hid_if.c文件里面的int8_t CUSTOM_HID_OutEvent_FS添加如下程序:
6.png

3、在main函数里面添加如下内容:
7.png

这样可能有点不明不白,可以参考附件的PDF教程及工程文件,接下来看看效果:
上位机软件:
QQ截图20170413141519.png
1、连接图:
P70413-141700.jpg

2、上位机控制板子上的LED:
P70413-141923.gif

3、按键信号反馈给上位机:
P70413-141954.gif

附件:
MiniSTM32_HID.zip (12.15 MB, 下载次数: 6458)

评分

参与人数 7ST金币 +7 收起 理由
远方_85cf1e -1 赞一个!
ddyyzz123 -1 很给力!
stefy -1 感谢分享
a15815760472 -1 很给力!
gla19930103 -1
子曰好人 + 10 很给力!
努力的人 + 2

查看全部评分

本帖被以下淘专辑推荐:

  • · USB|主题: 1, 订阅: 0
回复

使用道具 举报

该用户从未签到

22

主题

1027

帖子

12

蝴蝶豆

金牌会员

最后登录
2021-7-23
 楼主| 发表于 2017-7-21 08:26:14 | 显示全部楼层
emc_ytm 发表于 2017-7-20 20:59
不错,感谢,
对于报告描述符还是有不明白,

你可以看看这个 STM32的CustomHID的各描述符介绍.zip (2.94 KB, 下载次数: 719)
回复 支持 2 反对 0

使用道具 举报

该用户从未签到

10

主题

703

帖子

0

蝴蝶豆

金牌会员

最后登录
2018-6-15
发表于 2017-4-13 16:05:09 | 显示全部楼层
楼主   厉害                          
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2017-10-31
发表于 2017-4-14 16:25:09 | 显示全部楼层
牛逼了啊
回复

使用道具 举报

该用户从未签到

4

主题

25

帖子

0

蝴蝶豆

初级会员

最后登录
2020-1-6
发表于 2017-6-13 14:19:43 | 显示全部楼层
学习下
回复

使用道具 举报

该用户从未签到

3

主题

971

帖子

176

蝴蝶豆

论坛元老

最后登录
2021-4-1
发表于 2017-6-13 19:27:05 | 显示全部楼层
学习了,明天跟楼主做以下看看
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

蝴蝶豆

新手上路

最后登录
2018-6-8
发表于 2017-7-18 15:41:44 | 显示全部楼层
本帖最后由 hereandy 于 2017-7-18 15:47 编辑

请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设备管理器中提示“unknown device”。
能指点下不?
111.png
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

1027

帖子

12

蝴蝶豆

金牌会员

最后登录
2021-7-23
 楼主| 发表于 2017-7-19 08:22:16 | 显示全部楼层
hereandy 发表于 2017-7-18 15:41
请教下,我用的是STM32F407VETx,也用一样的开发环境及工具,照上面的步骤生成了工程,连接电脑运行后,在设 ...

查一下是不是分频不对
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

蝴蝶豆

新手上路

最后登录
2018-6-8
发表于 2017-7-19 10:55:29 | 显示全部楼层
谢谢 ANNY的回复,我的时钟是这样的:

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

里面好像没有USB时钟的配置
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

1027

帖子

12

蝴蝶豆

金牌会员

最后登录
2021-7-23
 楼主| 发表于 2017-7-20 09:13:49 | 显示全部楼层
hereandy 发表于 2017-7-19 10:55
谢谢 ANNY的回复,我的时钟是这样的:

用函数显示出来看看,类似标准库的RCC_GetClocksFreq(&RCC_Clocks);//用于查看单片机运行频率
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

23

帖子

0

蝴蝶豆

中级会员

最后登录
2019-6-25
发表于 2017-7-20 20:59:37 | 显示全部楼层

不错,感谢,
对于报告描述符还是有不明白,

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-3-28 21:39 , Processed in 1.218339 second(s), 50 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表