打印

使用CY7C64215单片机制作HID键盘

[复制链接]
4922|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2014-3-11 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用CY7C64215单片机制作HID键盘,支持开机启动。
开机后,按键有响应,但太快。但LED无响应(如Caps Lock 灯)
沙发
zhuww| | 2014-3-11 11:01 | 只看该作者
进入Windows后,键盘正常吗?

使用特权

评论回复
板凳
wangzsa|  楼主 | 2014-3-11 11:02 | 只看该作者
正常

使用特权

评论回复
地板
zhanglli| | 2014-3-11 11:04 | 只看该作者
不清楚你有啥实际问题

使用特权

评论回复
5
wangzsa|  楼主 | 2014-3-11 11:05 | 只看该作者
我设了两个端点EP1(input),EP2(output),也设了subclass。还需要什么改动?

使用特权

评论回复
6
lium| | 2014-3-11 11:07 | 只看该作者
程序看看

使用特权

评论回复
7
wangzsa|  楼主 | 2014-3-11 11:08 | 只看该作者
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
langgq| | 2014-3-11 11:09 | 只看该作者
响应太快还是问题?

使用特权

评论回复
9
wangzsa|  楼主 | 2014-3-11 11:10 | 只看该作者
就是按一下按键,能跳出很多的字符,这个有可能是我的按键响应没最好。

使用特权

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

使用特权

评论回复
11
wangzsa|  楼主 | 2014-3-11 11:18 | 只看该作者
理图很简单的,5V供电是从USB接口取的。我倒是没遇到过你的问题,只要在系统里,还是很稳定的。

使用特权

评论回复
12
llia| | 2014-3-11 11:19 | 只看该作者
应该是你HID Report没写好吧

使用特权

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

使用特权

评论回复
14
wangzsa|  楼主 | 2014-3-11 11:26 | 只看该作者
嗯,知道了

使用特权

评论回复
15
szjlj168| | 2014-3-11 15:06 | 只看该作者
:lol楼主有用到CYPRESS的芯片可以找我哟..

使用特权

评论回复
16
qqlinker| | 2014-3-12 11:20 | 只看该作者
用68031怎么样

使用特权

评论回复
17
frank303| | 2014-6-8 23:42 | 只看该作者
求usb设置程序o(╯□╰)o

使用特权

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

本版积分规则

914

主题

9040

帖子

5

粉丝