打印

关于HID键盘开机启动的问题?

[复制链接]
2973|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mickey1118|  楼主 | 2011-8-24 17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目标:使用CY7C64215单片机制作HID键盘,支持开机启动。
现状:进入Windows后,键盘正常
困难:开机后,按键有响应,但太快。但LED无响应(如Caps Lock 灯)
实际问题:我设了两个端点EP1(input),EP2(output),也设了subclass。还需要什么改动?望有高人指导,谢谢!
下面是我的主程序

void main(void)  
{  
int temp1,temp2;
BYTE readout;

  LED_1_Start();
  LED_2_Start();
  LED_3_Start();
  LED_1_Switch(0); // Turn on LED_1
  LED_2_Switch(0); // Turn on LED_2
  LED_3_Switch(0); // Turn on LED_3
M8C_EnableGInt;                       //Enable Global Interrupts   
USBFS_Start(0, USB_5V_OPERATION);      //Start USBFS Operation using device 0 and with 5V operation  
while(!USBFS_bGetConfiguration());     //Wait for Device to enumerate  

   

//Enumeration is completed load endpoint 1. Do not toggle the first time  
USBFS_LoadInEP(1, keycode, 8, USB_NO_TOGGLE);  
    USBFS_EnableOutEP(2);
while(1)  
{

   temp1=KEY_input();
   
   if(temp1==0x41)
   {
    keycode[0]|=0x02;
   }
   else
   {
   keycode[0]&=(~0x02);
   }
   if(temp1==0x43)
   {
    keycode[0]|=0x02;
    temp1=0x11;
   }
      if(USBFS_bGetEPAckState(1))
      {
         
   
   //ACK has occurred, load the endpoint and toggle the data bit  
         USBFS_LoadInEP(1, keycode, 8, USB_TOGGLE);
      //converting read from Keyboard scan code to PC format     
      keycode[2]=MakeConversionTable(temp1);
      }
   
     }

        
      if(USBFS_bGetEPAckState(2))
     {
      USBFS_bReadOutEP(2, Buf, 1);  
      if(Buf[0]&0x02)
   {
   LED_1_Switch(1);
   }
      else
   {
   LED_1_Switch(0);
   }
   USBFS_EnableOutEP(2);
  }
  Delay(1000);
}  
}
沙发
langgq| | 2011-8-25 13:36 | 只看该作者
响应太快还是问题?

使用特权

评论回复
板凳
mickey1118|  楼主 | 2011-8-25 15:08 | 只看该作者
2# langgq

就是按一下按键,能跳出很多的字符,这个有可能是我的按键响应没最好。现在最主要的问题是:键盘上的灯(CapsLock等)没有响应。

使用特权

评论回复
地板
yangfu0579| | 2011-8-26 22:20 | 只看该作者
1# mickey1118


mikey1118 你好 我正在用CY7C64215做一个uSB的键盘, 有个问题想问你下, 你的电路是给CY7C64215 的电压是几伏? 我的是 用5V供电,把程序下载进去后,电脑有时候识别的了,有时候识别不了USB设备, 你遇到过这个问题吗? 我的QQ  285605718   能否把你的原理图发给我看看   就CY7C64215 这个部分,,USB接口需要注意什么吗? 谢谢  新人刚学CY7C64215

使用特权

评论回复
5
zhanglli| | 2011-8-28 17:19 | 只看该作者
就在坛子里讨论呗,大家也学习一下

使用特权

评论回复
6
mickey1118|  楼主 | 2011-8-29 16:28 | 只看该作者
回4楼的,原理图很简单的,5V供电是从USB接口取的。我倒是没遇到过你的问题,只要在系统里,还是很稳定的。应该是你HID Report没写好吧

使用特权

评论回复
7
yufe| | 2011-8-29 16:55 | 只看该作者
上图看看

使用特权

评论回复
8
jiadecun| | 2011-10-28 13:25 | 只看该作者
按下Caps Lock等几个键的时候,主机会返回俩个字节的数据,第二个字节第三位就是LED的状态值(1亮 0灭),直接将状态值设到LED就行了

使用特权

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

本版积分规则

0

主题

5

帖子

1

粉丝