• 大小: 115KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: CH376  鼠标  键盘  

资源简介

用CH370模块实现对键盘和鼠标的控制的具体C语言代码。

资源截图

代码片段和文件信息

/* 用CH376操作HID设备,比如键盘,鼠标兼容HID复合设备*/


#include 
#include 
#include 
#include
#include “CH376INC.H“

#include “hid.h“

// 获取设备描述符
const unsigned char code SetupGetDevDescr[] = { 0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00 };
// 获取配置描述符
const unsigned char code SetupGetCfgDescr[] = { 0x80 0x06 0x00 0x02 0x00 0x00 0x09 0x00 };
// 设置USB地址
const unsigned char code SetupSetUsbAddr[] = { 0x00 0x05 0x02 0x00 0x00 0x00 0x00 0x00 };
// 设置USB配置
//const unsigned char code SetupSetUsbConfig[] = { 0x00 0x09 0x00 0x00 0x00 0x00 0x00 0x00 };
// SET IDLE 
const unsigned char code SetupSetidle[]={0x210x0a0x000x000x000x000x000x00};        
// 获取HID 报告描述符 
const unsigned char code SetupGetHidDes[]={0x810x060x000x220x000x000x810x00};    
// SET REPORT 
const   unsigned char code SetupSetReport[]={0x210x090x000x020x000x000x010x00};     


////单片机总线方式操作CH376
//UINT8V xdata CH376_CMD_PORT _at_ 0xBDF1; /* CH376命令端口的I/O地址 */
//UINT8V xdata CH376_DAT_PORT _at_ 0xBCF0; /* CH376数据端口的I/O地址 */
//

#define CH376_INT_WIRE   INT0       //定义CH376中断引脚,可省略;

struct _Device_Atti{
   UINT8 Device_connect;      //设备连接状态 1:连接,0:断开
   UINT8 Device_compat;       //0:非复合设备1表示复合设备  
   UINT8 Cfg_value;           //设备配置描述符中配置值
  struct _Device{ 
   UINT8 Device_type;        //设备类型 1:键盘,2:鼠标
   UINT8 Device_inf;        //设备接口号 默认为0  最多支持两个接口设备
   UINT8 Device_endp;         //设备端点地址 最多支持一个端点
   UINT8 Device_size;         //设备端点大小 
   UINT16 Device_report_len;   //设备报表长度
UINT8 tog;    //端点的同步标志
  }Device[2];
}Device_Atti = { 0 };

UINT8 receive_mode = 0x00send_mode = 0x00;
UINT8 data_buf[90];
UINT8 status;
bit   flag_config_2; //第二次获取配置描述符标志

//**********************************************
//* NAME:    mDelay2uS( )  
//* FUCTION: 延时2us子函数  
//* 输入参数:无
//* 输出参数:无  
//* 说明:    根据单片机的主频进行调整  
//**********************************************

void mDelay2uS( )
{
 UINT8 i;
 for(i=1;i!=0;i--);

}

//**********************************************
//* NAME:    mDelay50mS( )  
//* FUCTION: 延时50ms子函数  
//* 输入参数:无
//* 输出参数:无  
//* 说明:    根据单片机的主频进行调整  
//**********************************************

void mDelay50mS( )
{
 UINT8 ij;
 for(i=250;i!=0;i--)
   for(j=250;j!=0;j--);
}




////**********************************************
////* NAME:    CH376_WR_CMD_PORT( UINT8 cmd )  
////* FUCTION: 写CH376命令子函数  
////* 输入参数:8位命令码
////* 输出参数:无  
////* 说明:对于速度较快的单片机,则需要1.5uS延时  
////**********************************************
//
//void CH376_WR_CMD_PORT( UINT8 cmd )
//{
// UINT8  i;
//
//   xWriteCH376Cmd = cmd;
//
// for ( i = 0; i < 100; i++ )  /* 状态查询等待CH376不忙 */
// {  
// if ( ( xWriteCH376Cmd & PARA_STATE_BUSY ) == 0 )                           /* 检查状态端口的忙标志位 */    
// {
//     br

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-08-02 10:15  376操作鼠标键盘\
     文件      102112  2013-05-01 19:37  376操作鼠标键盘\376host
     文件       51447  2013-05-01 19:37  376操作鼠标键盘\376host.LST
     文件       43180  2013-05-01 19:37  376操作鼠标键盘\376host.M51
     文件       72219  2013-05-01 19:37  376操作鼠标键盘\376host.OBJ
     文件        1303  2013-05-01 19:38  376操作鼠标键盘\376host.Opt
     文件        2192  2013-05-01 19:38  376操作鼠标键盘\376host.Uv2
     文件       25261  2013-05-01 19:30  376操作鼠标键盘\376host.c
     文件       14115  2013-05-01 19:37  376操作鼠标键盘\376host.hex
     文件          61  2013-05-01 19:37  376操作鼠标键盘\376host.lnp
     文件        5570  2013-05-01 19:38  376操作鼠标键盘\376host.plg
     文件        1526  2013-04-06 00:11  376操作鼠标键盘\376host_Opt.Bak
     文件        2159  2013-04-06 00:11  376操作鼠标键盘\376host_Uv2.Bak
     文件       39618  2012-02-10 22:11  376操作鼠标键盘\CH376INC.H
     文件       11280  2013-04-20 10:57  376操作鼠标键盘\SPI_SW.C
     文件        1612  2013-04-19 23:31  376操作鼠标键盘\SPI_SW.H
     文件       19440  2013-05-01 19:37  376操作鼠标键盘\SPI_SW.LST
     文件       35937  2013-05-01 19:37  376操作鼠标键盘\SPI_SW.OBJ
     文件        6376  2005-03-22 15:22  376操作鼠标键盘\STARTUP.A51
     文件       14048  2013-04-05 18:52  376操作鼠标键盘\STARTUP.LST
     文件         749  2013-04-05 18:52  376操作鼠标键盘\STARTUP.OBJ
     文件        3337  2009-07-28 11:16  376操作鼠标键盘\hid.h
     文件           0  2009-07-28 11:16  376操作鼠标键盘\hid.h.bak

评论

共有 条评论