打印

现金求CY7C63813芯片,电脑Set_Report发来的键盘灯数据,如何接

[复制链接]
1649|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lyttly|  楼主 | 2014-7-4 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lyttly 于 2014-7-4 18:13 编辑

现金求CY7C63813芯片,电脑Set_Report发来的键盘灯数据,如何接收

本人用CY7C63813芯片接电脑usb口,来控制电脑键盘和鼠标,现在控制没有问题。就差无法接收电脑发来的键盘灯数据。
现在我有2种简单方法可以实现,可都有些问题,无法拿来使用。
1,直接读EP0DATA是可以读到键盘灯数据,可其它数据也在这,所以读出的数据不一定是键盘灯的。就想知道什么时候去读才是键盘灯的?
2,如果是设EP1是OUT 为输出断点,然后
USB_EnableEP(1)
if (USB_bGetEPState(1) == OUT_BUFFER_FULL)
{
   EDled = EP1DATA;
   USB_EnableEP(1);
}
这样是能准确读出键盘灯数据,
可我EP1键盘输入需要用,EP2鼠标输入。不知道EP1输入和输出如何同时使用。

下面是我找到的一个资料,

若要超载所供应的HID类设置报告(Set Report)请求USB_CB_SRC_h2d_cls_ifc_09,则要在USB.inc

文件内做出下列改变来启用子程序:

;@PSoC_UserCode_BODY_1@ (Do not change this line.)   
   ;---------------------------------------------------   
   ; Insert your custom code below this banner   
   ;---------------------------------------------------   
   ;   NOTE: interrupt service routines must preserve   
   ;   the values of the A and X CPU registers.   
; Enable an override of the HID class Set Report request.   
USB_CB_SRC_h2d_cls_ifc_09: EQU USB_APP_SUPPLIED   
   ;---------------------------------------------------   
   ; Insert your custom code above this banner   
   ;---------------------------------------------------   
   ;@PSoC_UserCode_END@ (Do not change this line.)   

然后,编写一个名称为APP_USB_CB_SRC_h2d_cls_ifc_09 的汇编语言子程序。设备请求的名称得自于

USB bmRequestType 和 bRequest 数值 (USB 规格的表 9-2).

此段代码是用于以上示例的汇编子程序的占位程序 (stub):

export APP_USB_CB_SRC_h2d_cls_ifc_09   
APP_USB_CB_SRC_h2d_cls_ifc_09:   
;Add your code here.   
; Long jump to the appropriate return entry point for your application.   
LJMP USBFS_InitControlWrite   

分配和超越子程序要求.

分配或超越子程序最少必须能够通过一个长跳转传输 (LJMP)至下列表格中列出的端点 0 ISR 返回点中的

一点,而将控制返回给端点ISR。这项分配路径可能完全破坏A 和X 寄存器的内容,但堆栈指针 (SP)和

其它任何相关场合必须在返回控制给 ISR 之前恢复.

上面他说的

此段代码是用于以上示例的汇编子程序的占位程序 (stub): :
export APP_USB_CB_SRC_h2d_cls_ifc_09   
APP_USB_CB_SRC_h2d_cls_ifc_09:   
;Add your code here.   
; Long jump to the appropriate return entry point for your application.   
LJMP USBFS_InitControlWrite

这断代码应该写在哪里?如何去接收set_Report发来的数据?

本人愿意出现金求解。
希望大家多多帮忙看看,再搞不出来,我可能就要下岗了。
拜托大家了!

沙发
kk5290122| | 2014-7-7 20:50 | 只看该作者
lz到底是要CY7C63813芯片?还是要应用程序?

使用特权

评论回复
板凳
lyttly|  楼主 | 2014-7-8 10:14 | 只看该作者
kk5290122 发表于 2014-7-7 20:50
lz到底是要CY7C63813芯片?还是要应用程序?

kk5290122 你好!
我要是程序,如何用这个芯片去接收电脑发来的键盘灯数据。
芯片我有,淘宝上很多。

使用特权

评论回复
地板
kk5290122| | 2014-7-23 23:00 | 只看该作者
lyttly 发表于 2014-7-8 10:14
kk5290122 你好!
我要是程序,如何用这个芯片去接收电脑发来的键盘灯数据。
芯片我有,淘宝上很多。 ...

:L好吧!这个真没有……

使用特权

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

本版积分规则

4

主题

23

帖子

0

粉丝