使用CY7C64215单片机制作HID键盘,支持开机启动

[复制链接]
535|15
手机看帖
扫描二维码
随时随地手机跟帖
zwll|  楼主 | 2018-7-5 20:38 | 显示全部楼层 |阅读模式

使用CY7C64215单片机制作HID键盘,支持开机启动。
开机后,按键有响应,但太快。但LED无响应(如Caps Lock 灯)
morrisk| | 2018-7-5 20:41 | 显示全部楼层
进入Windows后,键盘正常吗?

使用特权

评论回复
zwll|  楼主 | 2018-7-5 20:44 | 显示全部楼层
正常

使用特权

评论回复
chuxh| | 2018-7-5 20:47 | 显示全部楼层
不清楚你有啥实际问题

使用特权

评论回复
zwll|  楼主 | 2018-7-5 20:50 | 显示全部楼层
我设了两个端点EP1(input),EP2(output),也设了subclass。还需要什么改动?

使用特权

评论回复
pengf| | 2018-7-5 20:53 | 显示全部楼层
程序看看

使用特权

评论回复
zwll|  楼主 | 2018-7-5 20:56 | 显示全部楼层
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);
}  
}

使用特权

评论回复
supernan| | 2018-7-5 21:00 | 显示全部楼层


响应太快还是问题?

使用特权

评论回复
zwll|  楼主 | 2018-7-5 21:02 | 显示全部楼层
就是按一下按键,能跳出很多的字符,这个有可能是我的按键响应没最好。

使用特权

评论回复
houcs| | 2018-7-5 21:05 | 显示全部楼层
我正在用CY7C64215做一个uSB的键盘, 有个问题想问你下, 你的电路是给CY7C64215 的电压是几伏? 我的是 用5V供电,把程序下载进去后,电脑有时候识别的了,有时候识别不了USB设备, 你遇到过这个问题吗?

使用特权

评论回复
zwll|  楼主 | 2018-7-5 21:07 | 显示全部楼层
理图很简单的,5V供电是从USB接口取的。我倒是没遇到过你的问题,只要在系统里,还是很稳定的。

使用特权

评论回复
chenjunt| | 2018-7-5 21:11 | 显示全部楼层
应该是你HID Report没写好吧

使用特权

评论回复
zyf部长| | 2018-7-6 15:55 | 显示全部楼层
按下Caps Lock等几个键的时候,主机会返回俩个字节的数据,第二个字节第三位就是LED的状态值(1亮 0灭),直接将状态值设到LED就行了

使用特权

评论回复
heweibig| | 2018-7-6 15:58 | 显示全部楼层
识别不了是什么意思?是插上PC端后PC没有任何反应么?

使用特权

评论回复
wuhany| | 2018-7-6 16:00 | 显示全部楼层
把灯调慢点

使用特权

评论回复
zwll|  楼主 | 2018-7-6 16:02 | 显示全部楼层

哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝