打印
[STM32F1]

STM32F107VCT6金龙107USB例程USB HOST例程

[复制链接]
1462|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1HOST_HID例程说明



1.1HID简介
HIDHuman Interface Device)人机接口设备类别是Windows最早支持的USB类别。由其名称可以了解HID设备是计算机直接与人交互的设备,例如键盘、鼠标和游戏杆等。不过HID设备不一定要有人机接口,只要符合HID类别规范,就都是HID设备。
在该例程当中,金龙107开发板作为一个主机,可以识别USB鼠标和USB键盘,鼠标的移动可以在3.2寸屏上有所显示,左右按键以及中键的按下,也会做出相应的反应,接上键盘可以可以通过键盘输入字符,同时如果插入SD卡,可以使用键盘输入文件名之后,点击键盘的ENTER键,打开键入的TXT文件,并开始向改TXT文档写入由键盘输入的数据,输入完毕,再次点击键盘的ENTER键,则可以保存文件,并存储在SD卡上,SD卡插在板上。
1.2、硬件说明
本实验涉及到USB的接口,如果接上USB键盘,则需要用到SD卡。因为USB端口的两个引脚和USART1的两个引脚共用,所以要注意跳线帽JP10JP11要接在1-2上。此外,就是要注意boot的选择,即JP4JP7接在2-3上。电路图如下图所示:
如果在软件确定没有问题的时候,也要注意检查硬件的连接是否有问题,主要检查点就是Q2和按键的输出信号是否正确。
1.3、程序说明
从主程序看出,USB的设置调用了一个初始化函数,其形参是几个结构体,通过调用结构体里面的函数,实现对USB的初始化设置。同时主程序里面还在不停的检测USB设备的状态,然后做出对应的动作。
我们这里主要看一下都对哪些进行了配置,在usb_bsp.c文件里面主要对USB所使用到的VBUS的选择端和USB的中断做了一些配置,以及USB的时钟配置,其中涉及到使用TIM2做的定时器延时的配置。
usbh_usr.c文件中涉及的是关于屏的一些初始化,以及显示屏要显示的一些实时信息。这里面也是通过一个结构体来实现函数的调用。
其中我们主要看void USBH_USR_Init(void)函数里面的一些对相关硬件的初始化,其中首先对主函数中涉及到用来指示程序运行的四个LED灯的端口的初始化,然后是对S1按键的的端口引脚的配置,下面就是LCD的初始化的设置。以及初始化之后屏幕要显示的内容。下面的函数主要是我们用户的函数,包括鼠标接上之后,的显示,以及键盘接上之后的显示,键盘的输入的显示,和对SD卡的使用等。
下面的函数是对鼠标界面的初始化显示,以及得到鼠标的移动坐标值之后,金龙107对数据的处理并在3.2寸显示屏上,进行实时的显示。
下面的函数是对键盘的初始化,以及SD卡的初始化。
下面的函数是对接收到的数据进行的处理过程,我们首先要判断是否输入完成文件名,如果输入文件名之后,则当按下ENTER键的时候,则创建并打开该文档,当再次输入数据的时候,判断文档是否打开,如果文档已经被打开,则把输入的字符存放在文档中,如果检测到按下ENTER键,则关闭文档并保存。
1.4、实验现象
下载程序,并复位。插上鼠标,则屏幕显示如下第一幅图,然后按下开发板上的S1按键,则会出现第二幅图片。移动鼠标,上面的’*’会移动。
  
如果你接的是键盘,初始界面上面会显示你连接的是HID键盘,按下S1按键则会是下面的界面。下面会显示“SD Init is OK”并让你输入文件名。
输入文件名之后,点击键盘ENTER键之后的界面,下面提示,文档已打开。
输入字符,输入完成之后,点击键盘ENTER键之后的界面,文档保存。

【1】金龙107_HOST_HID.rar (1.1 MB)




沙发
ynwscffd| | 2015-4-30 09:58 | 只看该作者
mark.....mark

使用特权

评论回复
板凳
perry_peng| | 2015-4-30 10:20 | 只看该作者
不错,谢谢分享。

使用特权

评论回复
地板
wangbao619| | 2015-4-30 10:42 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:专业生产销售STM32开发板,仿真器,http://openmcu.taobao.com/

71

主题

283

帖子

11

粉丝