阅读:1486回复:3
usb端点的程序。 需要指点呀。 很菜的问题,有分。
bEPIndex=0x0E //即端点7out
ISP1581_SetEPIndex(uchar bEPIndex) ; bEPIndex=0x09 //即端点4in ISP1581_SetEPIndex(uchar bEPIndex) ; outport(rega_dcount, len); //rega_dcount 0xff1c 缓冲区长度寄存器 void ISP1581_SetEPIndex(uchar bEPIndex) { outportb(rega_epindex, bEPIndex); // #define rega_epindex 0x2c 端点索引寄存器 //即把bEPIndex 数据放到地址rega_epindex里 } //---------------------------------------------------------- len=1; *buf=3; for(i=0; i<len; i++, buf++ ) { outportb(rega_dport,*buf); //#define rega_dport 0x20 数据端口寄存器 } //======================================================== void outportb(unsigned short nPort, unsigned char nVal) { unsigned char xdata *exAddress; exAddress = nPort; ISP1581_CS=0; *exAddress = nVal; ISP1581_CS=1; } //-------------------------------------------------------- 这段程序的作用是什么?? 哪位dx能解释一下。 解释好的另放40分。:D :D :D |
|
沙发#
发布于:2003-08-26 11:15
上半部分是把7out 和 4in 定给 端点索引寄存器。然后把1给缓冲区长度寄存器。
下半部分应该是读数据缓冲区吧。 我暂时就这么理解, 但是不明白端点索引寄存器的具体作用,和读数据缓冲区的时候,数据哪来的? 读到哪去了?? 初学usb, 实在是菜鸟, 问题弱了点 。 还请指教。 |
|
板凳#
发布于:2003-08-26 12:32
bEPIndex=0x0E //即端点7out 给分吧,你如果食言的话以后就不回答你的问题了 :D :D :D 更详细的信息情参考isp1581的datasheet,如果你不想看英文版的,周立功的网站上有中文版的,不过我一只看的是英文版 :D |
|
地板#
发布于:2003-08-26 14:58
我的e文不是很好。 所以看中文的。 我也是那么理解的, 但是不明白这两个放到一起有什么作用, 还以为这里是读, 那里就写到那了呢。
这只能给20分。 我在发2个新帖。给你放分。 :D 上次帮忙还没答谢你呢。 :P |
|