zyyz1100
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2009-10-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1047回复:0

大家看一下,我这段程序有什么问题!怎么收不到设备描述表信息!3x

楼主#
更多 发布于:2003-03-15 10:13
我用最原始的方法去做这点功能但是老是出不来结果,那位大侠帮帮忙!!!3x
预定义sl811寄存器:
#define EP0Control       0x00
#define EP0Address     0x01
#define EP0XferLen      0x02
#define EP0Status        0x03
#define EP0Counter      0x04

#define EP1Control       0x08
#define EP1Address      0x09
#define EP1XferLen       0x0a
#define EP1Status         0x0b
#define EP1Counter       0x0c

#define CtrlReg         0x05
#define IntEna          0x06
                               // 0x07 is reserved
#define IntStatus       0x0d
#define cDATASet      0x0e
#define cSOFcnt         0x0f  
//初始化和下setup包
SL811Write(EP0Address,0x10);
SL811Write(EP0XferLen ,0x08);
SL811Write(CtrlReg,0x08);
delay(20);
SL811Write(CtrlReg,0x01);
SL811Write(cDATASet,0xE0);
SL811Write(cSOFcnt,0xAE);
SL811Write(0x10,0x80);
SL811Write(0x11,0x06);
SL811Write(0x12,0x00);
SL811Write(0x13,0x01);
SL811Write(0x14,0x00);
SL811Write(0x15,0x00);
SL811Write(0x16,0x12);
SL811Write(0x17,0x00);
SL811Write(EP0Counter,0x00);
SL811Write(EP0Status,0xE0);
//此函数是下命令给寄存器0x00,并判断是否已经ACK      
result=go(0x07);

//得到设备描述表部分
SL811Write(EP0Address,0x30);
SL811Write(EP0XferLen ,0x12);
SL811Write(cDATASet,0xE0);  
SL811Write(cSOFcnt,0xAE);
SL811Write(EP0Counter,0x00);
SL811Write(EP0Status, 0x90);
result=go(0x63);

游客

返回顶部