关键词:
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小白学习之路cypress固件架构解析
Cypress固件架构彻底解析及USB枚举1. RAM的区别56pin或者100pin的cy7c68013A,只有内部RAM,不支持外部RAM128pin的cy7c68013A在pin脚EA=0时为内部RAM,pin脚EA=1时,为外部RAM2. USB描述符DESR.A51中放的是USB描述符表,包括:1、设备描述符2、... 查看详情
usb小白学习之路端点in/out互换
端点2(out)和端点6(in)的out_in互换注:这里的out和in都是以host为标准说的,out是host的out,在设备(Cy7c68013)这里其实是输入端口;in是host的in,在设备(Cy7c68013)这里其实是输出端口。由于在PDF文档中,最后博主说了句将端点2改为... 查看详情
usb小白学习之路cy7c68013aslavefifo模式下与fpga通信
CY7C68013ASlaveFIFO模式下与FPGA通信CY7C68013A的时钟是由FPGA提供的24MHz,RESET引脚也是由FPGA控制。1、开始时没有给FPGA烧录程序,将CY7C68013A接到PC上,安装驱动后,是检测不到device的,经查找,原因有两个: ①没有时钟,这种情况... 查看详情
(转)usb小白学习之路(12)cy7c68013固件之slavefifo
Cy7c68013固件之SlaveFIFO转自:http://blog.csdn.net/zengshaoqing/article/details/53053539 选择SlaveFIFO传输方式 SlaveFIFO传输示意如图1:图1SlaveFIFO传输示意图 在SlaveFIFO方式下,FX2LP内嵌的8051固件的功能只是配置SlaveFIFO 相关的寄存器以... 查看详情
usb小白学习之路fpgacommunicationwithpcbycy7c68013,td_init()解析
voidTD_Init(void){ CPUCS=((CPUCS&~bmCLKSPD)|bmCLKSPD1); //设置CPU时钟频率为48M,寄存器CPUCS的位如下所示。此语句就是将CPUCS的b4,b3位设为10, & 查看详情
(转)usb小白学习之路fx2lpcy7c68013——slavefifo与fpga通信
此博客转自CSDN:http://blog.csdn.net/xx116213/article/details/50535682 1USB概述USB名称解释 USB是通用串行总线(UniversalSerialBus)的缩写。能过在计算机运行过程中随意地接入,并且立刻就能投入工作,那么这样的特性叫做即插即用PnP... 查看详情
(转)usb小白学习之路(11)cy7c68013驱动电路设计注意事项
Cy7c68013驱动电路设计注意事项转自:http://group.chinaaet.com/116/79029#0-tsina-1-71467-397232819ff9a47a7b7e80a40613cfe1 CY7C68013的驱动电路非常简单,除了提供24MHz时钟源,设计好USB差分接口,做好电源滤波,其他信号均可由数字控制。这里简... 查看详情
(转)usb小白学习之路(10)cy7c68013slavefifo模式下的标志位
转自良子:http://www.eefocus.com/liangziusb/blog/12-11/288618_bdaf9.html CY7C68013含有4个大端点,可以用来处理数据量较大的传输,如数据采集、视频等方面的应用。每个大端点都可以独立配置对应的FIFO,同时,也提供了相应的标志位... 查看详情
小白的ctf学习之路1——程序与cpu
刚刚注册了这个博客园,尽量保持每日一更(*/ω\*)今天看了po学院的教学视频,了解了程序是什么,如何在CPU当中工作的等各种之前未曾想过的问题,特此记录,以防忘记首先我们学习程序与CPU之前需要了解这么几个问题:1... 查看详情
62stm32usb自定义hid复合设备修改实验(代码片段)
... 最近因为项目需要,我们希望单片机既能有hid键盘功能,又能有hid设备的功能。即单片机的一个usb接口插入电脑后,电脑能识别出键盘设备和hid设备,两者同时存在的。 基于项目只是要求实现功... 查看详情
技巧.在虚拟机vmware中使用hid设备(如usb免驱键盘)
https://blog.csdn.net/future_ai/article/details/80603724 1、2、3、4、5、 查看详情
前端小白的学习之路--html学习
HTML的补充学习1.meta与base<metahttp-equiv="refresh"content="2">2秒刷新一次<basehref="https://www.baidu.com"target="_blank">设置默认跳转地址以及跳转方式<linkrel="icon 查看详情
如何从 USB HID 设备读取输入?
...入。如何从C#获取扫描仪的输入?我可以区分扫描仪和USB键盘吗?(扫描仪是HID设备)【问题讨论】:【参考方案1】:在CodeProject上使用“原始输入”实现之前,我成功地做到了这一点:R 查看详情
小白艰苦学习之路(记录学习历程——java篇)day4(代码片段)
Day4用户交互Scanner对象可以通过Scanner类来获取用户的输入。(其中,java.util.Scanner是它的包)基本语法:Scanners=newScanner(System.in)通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使... 查看详情
修改后的 USB 键盘驱动程序不接收按键 (Linux)
】修改后的USB键盘驱动程序不接收按键(Linux)【英文标题】:ModifiedUSBKeyboardDriverNotReceivingKeyPresses(Linux)【发布时间】:2016-11-2623:15:54【问题描述】:我正在尝试编写修改/自定义的USB键盘驱动程序。我遇到了irq处理程序没有按预期... 查看详情
小白艰苦学习之路(记录学习历程——预备篇)day1
学习路线Java预科知识博客的重要性Markdown语法标题#(空格)+标题名称【一级标题】或ctrl+1##(空格)+标题名称【二级标题】或ctrl+2###(空格)+标题名称【三级标题】或ctrl+3以此类推到六... 查看详情
badusb攻击(代码片段)
...HID设备是指计算机直接与人交互的设备,例如:键盘、鼠标和游戏杆等。在HID出现之前,每一个外接设备在接入电脑时,都需要初始化驱动程序和协议,比如更换鼠标键盘,新接入USB类型的设备等,大... 查看详情
usb接口程序编写
...是操作系统已经内置了HID设备驱动,一般不需要安装驱动程序。通用的HID设备可以直接使用HID设备类驱动程序(hidclass.sys)和HID小驱动程 查看详情