holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1513回复:9

【疑问】D12到底什么时候会触发挂起改变?(40分)

楼主#
更多 发布于:2004-03-12 21:57
    我进行枚举的时候,总是完配置描述符后就没有反应了,程序
总是停在:
    if (bEPPflags.bits.suspend)
    {//挂起改变处理
DISABLE;
bEPPflags.bits.suspend= 0;
ENABLE;

if(D12SUSPD == 1)
           {//挂起处理
D12SUSPD = 0;
……
D12SUSPD = 1;
PCON |= 0x02;
while (1);
}
     }// if suspend change
中的while(1),因为不知道什么时候会进入这段,所以不知道怎么
调了,请大侠帮忙!
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-14 17:08
    我顶,help!
    仿真器至少还能读到配置描述符,下载到片子后就什么也读不到
了,好像一插到pc就直接进入挂起中断,根本不理setup包
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-14 22:25

PCON |= 0x02;
while (1);
这两行代码去掉看看
照理应该没关系的,除非PC发出了挂起请求。
A strong man can save himself. A great man can save another.
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-03-15 08:58
 这里根本不用修改的,你修改VID PID试试看
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-15 09:40
     我的VID和PID是0471和0666,为什么要修改它们?修改成什么?
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-03-15 09:48
如果删掉两行代码还没有效果。
可以对下面的变量进行初始化为0
bEPPflags.bits.suspend

你肯定是拿Philips的例子代码(或它的变种)进行修改而来的。该例子可能有很多不太完善的地方。最好bEPPflags结构都要进行初始化。该结构最好使用片内RAM.
A strong man can save himself. A great man can save another.
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-15 16:38
     我把挂起改变的程序暂时屏蔽掉了,现在当设备连上pc后开始
运行固件,结果还算正常;如果反一下,当先运行固件,然后再把
设备插上pc时,clkout脚就一下变回4M,什么反应都没了,这是什么
问题?
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-03-16 07:57
你的设备是自供电的?
A strong man can save himself. A great man can save another.
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-03-16 17:36
   是,我的自供电
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-03-17 10:19
那你要检查一下你的Configuration Descriptor中关于供电设置的那里是否搞错掉了?(bmAttributes, 你的应该为0xe0或0xc0)
A strong man can save himself. A great man can save another.
游客

返回顶部