阅读:2078回复:3
请教高手:D12初始化过程,能推荐译一本书或某个电子文档,指明具体章节,我去仔细看,也非常感谢!
请教高手:帮我解释一下,主程序在执行到while( TRUE )之前,即D12初始化阶段稍微详细一点的流程吗?
大致要调用那几个函数?怎样个顺序? 谢谢 高手指点!能推荐译一本书或某个电子文档,指明具体章节,我去仔细看,也非常感谢! |
|
沙发#
发布于:2002-10-30 13:29
这是摘抄的:
在编写USB的单片机程序时,需要注意: ① 单片机的中断应设置为电平触发;中断后一定要读上次传输状态寄存器(命令40-45H),以清 除中断寄存器中的中断标志。这样,PDIUSBD12的中断输出才能变回高电平,这一点非常重要。 ② 在接收到Setup包后,一定要调用ACK setup命令重新使能端口0。 ③ 在向IN端点写完数据后,一定调用Validate Buffer(命令FAH),指明缓冲区中的数据有效,可以发送到主机。 ④ 当读完数据后,一定调用Clear Buffer(命令F2H),以保证可以接收新的包。 ⑤ 可以通过调用Read Chip ID(命令FDH)检查PDIUSBD12是否工作。该命令要读两个字节数 据。 USB初始化过程为: ① Set Address Enable; ② Set Endpoint Enable(此时LED亮); ③ Disconnect; ④ delay(1~2 s); ⑤ Connect(即用43h参数调用Set Mode,此时LED灭); ⑥ Read Interrupt Register。 完成初始化工作后,就可作其它的前台工作了,并在前台判断是否有 Setup包(通过一个变量,当中断服务程序检测到有Setup包时,设置该变 量),然后执行响应的控制传输。 详细请看: http://www.driverdevelop.com/forum/viewthread.php?tid=14068 |
|
|
板凳#
发布于:2002-10-30 14:37
太感谢你了,我立刻去看看你说的那个网页。
咱们搞技术的,遇到难题,就希望能有人一针见血的指出:你看什么东西就行了。 看什么东西,我都不怕,多晦涩的英文也没有关系,关键是“定位” 的准,否则大海捞针,太郁闷了! 谢谢! |
|
地板#
发布于:2010-05-24 16:20
回 1楼(Parker) 的帖子
你好,非常高兴能看到关于USB初始化的帖子。我刚接触这方面,也遇到了一个问题,在USB初始化过程中,其中① Set Address Enable; ② Set Endpoint Enable(此时LED亮); ③ Disconnect; ④ delay(1~2 s); 以上都正常,但是执行到Connect时灯没有灭而且主机没有任何反映,不知道为什么? 还有43h参数具体是什么? 谢谢! |
|