打印

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

[复制链接]
908|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
juventus9554|  楼主 | 2019-12-1 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

使用CY7C64215单片机制作HID键盘,支持开机启动。
开机后,按键有响应,但太快。但LED无响应(如Caps Lock 灯)

使用特权

评论回复
沙发
morrisk| | 2019-12-1 10:42 | 只看该作者
进入Windows后,键盘正常吗?

使用特权

评论回复
板凳
zwll| | 2019-12-1 10:45 | 只看该作者
正常

使用特权

评论回复
地板
chuxh| | 2019-12-1 10:47 | 只看该作者

不清楚你有啥实际问题

使用特权

评论回复
5
zwll| | 2019-12-1 10:49 | 只看该作者
我设了两个端点EP1(input),EP2(output),也设了subclass。还需要什么改动?

使用特权

评论回复
6
pengf| | 2019-12-1 10:52 | 只看该作者
程序看看

使用特权

评论回复
7
zwll| | 2019-12-1 10:54 | 只看该作者

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);
}  
}

使用特权

评论回复
8
supernan| | 2019-12-1 10:57 | 只看该作者



响应太快还是问题?

使用特权

评论回复
9
zwll| | 2019-12-1 11:00 | 只看该作者
就是按一下按键,能跳出很多的字符,这个有可能是我的按键响应没最好。

使用特权

评论回复
10
houcs| | 2019-12-1 11:03 | 只看该作者
我正在用CY7C64215做一个uSB的键盘, 有个问题想问你下, 你的电路是给CY7C64215 的电压是几伏? 我的是 用5V供电,把程序下载进去后,电脑有时候识别的了,有时候识别不了USB设备, 你遇到过这个问题吗?

使用特权

评论回复
11
zwll| | 2019-12-1 11:05 | 只看该作者

理图很简单的,5V供电是从USB接口取的。我倒是没遇到过你的问题,只要在系统里,还是很稳定的。

使用特权

评论回复
12
chenjunt| | 2019-12-1 11:08 | 只看该作者
应该是你HID Report没写好吧

使用特权

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

使用特权

评论回复
14
supernan| | 2019-12-1 11:13 | 只看该作者
识别不了是什么意思?是插上PC端后PC没有任何反应么?

使用特权

评论回复
15
wuhany| | 2019-12-1 11:16 | 只看该作者
把灯调慢点

使用特权

评论回复
16
zwll| | 2019-12-1 11:28 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

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

本版积分规则

900

主题

12190

帖子

3

粉丝