阅读:1046回复:0
大家看一下,我这段程序有什么问题!怎么收不到设备描述表信息!3x
我用最原始的方法去做这点功能但是老是出不来结果,那位大侠帮帮忙!!!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); |
|