1、HOST_HID例程说明
1.1、HID简介HID(Human 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的两个引脚共用,所以要注意跳线帽JP10和JP11要接在1-2上。此外,就是要注意boot的选择,即JP4和JP7接在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键之后的界面,文档保存。
|