HID键盘程序

1. 特别注意

需要特别注意,各个例程中的设备描述符,配置描述符等各种描述符都是已经配置好了的,我们需要做的只是在例程中将代码修改为自己需要的部分即可,一般情况下是不可以串搭配的。

2. 程序解析

此程序使用的是端口1中断,进行数据的传输。

此程序的用户核心部分为periph.c文件中的“初始化函数TD_init()”和“循环执行函数TD_pull()”。

由图 1可知,开发板上的两个按键S1、S2和两个LED灯D4、D5都是接在端口PE上的。

图 1 开发板原理图

TD_init()函数就是完成对端口PE的初始化,以及端口1的中断使能。

TD_pull()函数就是通过检测PE4和PE5电平的变化,来向上位机传送相应的代码。同时,检测端口1中断数据,通过控制PE0和PE1的电平高低进行相应。

3. 实验验证

在通过Cypress USB Consloe给开发板烧录之后,就不能通过Cypress USB Console检测开发板了,因为这时已经被配置为HID设备,Cypress USB Console不能检测HID设备。

此时开发板上的S1,S2分别对应a和shift按键,可以通过在文档中输入检测。在键盘板上按Caps Lock或Num按键,开发板上的D4,D5会随着键盘板上的灯同样变化。

在这里可以得出结论,我们USB键盘板上的灯不是通过键盘板上的按键直接控制的,而是上位机检测到键盘板上的按键被按下,然后给键盘发送一个命令,来控制键盘板上的指示灯亮灭的。

USB小白学习之路(4)HID键盘程序的更多相关文章

  1. USB小白学习之路(10) CY7C68013A Slave FIFO模式下的标志位(转)

    转自良子:http://www.eefocus.com/liangziusb/blog/12-11/288618_bdaf9.html CY7C68013含有4个大端点,可以用来处理数据量较大的传输, ...

  2. USB小白学习之路(5) HID鼠标程序

    HID鼠标程序 1. 特别注意 需要特别注意,各个例程中的设备描述符,配置描述符等各种描述符都是已经配置好了的,我们需要做的只是在例程中将代码修改为自己需要的部分即可,一般情况下是不可以串搭配的. 2 ...

  3. USB小白学习之路(8)FX2LP cy7c68013A——Slave FIFO 与FPGA通信(转)

    此博客转自CSDN:http://blog.csdn.net/xx116213/article/details/50535682 这个博客只对自己理解CY7C68013的配置有一定的帮助,对于配置CY ...

  4. USB小白学习之路(11) Cy7c68013A驱动电路设计注意事项(转)

    Cy7c68013A驱动电路设计注意事项 转自:http://group.chinaaet.com/116/79029#0-tsina-1-71467-397232819ff9a47a7b7e80a4 ...

  5. USB小白学习之路(3) 通过自定义请求存取外部RAM

    通过自定义请求存取外部RAM 1. 实验简述 此实验是对自定义的供应商特殊命令(vendor specific command bRequest = 0xA3)进行解析,程序中的read me说明如下 ...

  6. USB小白学习之路(2)端点IN/OUT互换

    端点2(out)和端点6(in)的out_in互换 注:这里的out和in都是以host为标准说的,out是host的out,在设备(Cy7c68013)这里其实是输入端口:in是host的in,在设 ...

  7. USB小白学习之路(1) Cypress固件架构解析

    Cypress固件架构彻底解析及USB枚举 1. RAM的区别 56pin或者100pin的cy7c68013A,只有内部RAM,不支持外部RAM 128pin的cy7c68013A在pin脚EA=0 ...

  8. USB小白学习之路(12) Cy7c68013A固件之Slave FIFO(转)

    Cy7c68013固件之Slave FIFO 转自:http://blog.csdn.net/zengshaoqing/article/details/53053539 选择SlaveFIFO传输方式 ...

  9. USB小白学习之路(7) FPGA Communication with PC by CY7C68013,TD_init()解析

    注:这个TD_Init()只对EP6进行了配置,将其配置成为Bluk_In端口,而没有对EP2进行配置.这篇文章直接把寄存器的图片贴上来了,看起来比较杂.感兴趣的可以看下一篇文章,是转自CSDN,对E ...

随机推荐

  1. springMVC常用知识点的整理

    [spring boot]第3篇:spring boot 进行 web 开发 forward和redirect的区别是什么 Spring MVC中redirect重定向3种方式 =========== ...

  2. [HNOI2019]鱼(计算几何)

    看到数据范围n<=1000,但感觉用O(n^2)不现实,所以考虑方向应该是O(n^2logn). 一种暴力做法:用vector存到1点相同的2点和到2点相同的1点,然后枚举A,枚举BC,再枚举D ...

  3. inotify+rsync实时同步

    主服务器上安装inotify和rsync,备用服务器上安装rsync 主服务器上修改/etc/rsyncd.conf配置文件 三. 创建密码文件,防火墙设置,客户端和服务器端都要做如下操作 echo ...

  4. [LC] 1170. Compare Strings by Frequency of the Smallest Character

    Let's define a function f(s) over a non-empty string s, which calculates the frequency of the smalle ...

  5. 系统学习Javaweb9----BootStrap1

    学习内容: 1.BootStrap的简述 2.BootStrap环境搭建 3.BootStrap环境搭建-基本模板创建 4.BootStrap环境搭建-基本模板讲解 5.BootStrap布局容器 6 ...

  6. CentOS-SendMail服务

    title date tags layout music-id CentOS6.5 SendMail服务安装与配置 2018-09-04 Centos6.5服务器搭建 post 456272749 一 ...

  7. 初始化方法,init,构造器

    1.继承于NSObject class student: NSObject { var name : String? var age : Int = var friend : Int = init(n ...

  8. 在服务器搭建git服务器

    服务端操作 安装Git及创建用户组.用户 123 yum install gitgroupadd gitadduser git -g git 禁止用户git登录 修改/etc/passwd文件: 找到 ...

  9. 蓝桥杯-PREV3-带分数

    有人管蓝桥杯叫暴力杯,现在感觉还是挺贴切的.看到这题首先想到让i从1到n循环,首先判断i中无重复数字,再怎样判断能否用剩下的数构成n - i的假分数.之后看了题解.发现思路错了. 总结两点: 1.蓝桥 ...

  10. AngularJS前端以ArrayBuffer类型请求后端数据以生成文件时,出现异常的处理

    .error(function(error){ var decodedString = String.fromCharCode.apply(null, new Uint8Array(error)); ...