打印

请教问题

[复制链接]
2091|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyzyzy407|  楼主 | 2011-12-16 15:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
自己弄了块68013a的板子 问题如下
我用到了68013的串口并在vendercmnd中增加了向pc机发数 程序如下
BOOL DR_VendorCmnd(void)
{
  BYTE tmp;
  switch (SETUPDAT[1])
  {
     case VR_NAKALL_ON:       //0xD0
  Serial_SendChar( 0xD0 , 0 ) ;    //向串口1中发送0xD1
        tmp = FIFORESET;      //FIFORESET寄存器最高位置1
        tmp |= bmNAKALL;           
        SYNCDELAY;                    
     FIFORESET = tmp;
        break;
     case VR_NAKALL_OFF:      //0xD1
  Serial_SendChar( 0xD1 , 0 ) ;    //向串口0中发送0xD1
        tmp = FIFORESET;      //FIFORESET寄存器最高位置0
        tmp &= ~bmNAKALL;      
        SYNCDELAY;                    
        FIFORESET = tmp;
        break;
  case 0xD2:       //0xD2
  FIFORESET = 0x00 ;
  Serial_SendChar( 0xD2 , 0 ) ;
  Serial_SendChar( 0xD2 , 0 ) ;
  Serial_SendChar( 0xD2 , 0 ) ;
  break ;
     default:
  Serial_SendChar( 0x99 , 0 ) ;
        return(TRUE);
  }
  return(FALSE);
}
在void SetupCommand(void)中改了最后几句如下
default:                     // *** Invalid Command
         if(DR_VendorCmnd())
            temp = 1 ;
   //EZUSB_STALL_EP0();            // Stall End Point 0
   }
   // Acknowledge handshake phase of device request
   EP0CS |= bmHSNAK;
}
问题是我第一次发程序响应了如图

可第二次再发vender cmnd就出现问题了如图

如果不在vender cmnd中增加串口发送程序没有问题 但找不出原因 为什么呢?
沙发
wsdxs| | 2012-12-20 11:20 | 只看该作者
不懂,同问

使用特权

评论回复
板凳
dqyubsh| | 2012-12-20 15:10 | 只看该作者
0,SetupCommand是无需修改的
1,串口单独发送有没有问题
2,串口太慢了,别跟USB命令绕在一起。可以用USB口读回调试数据,没必要用UART输出调试。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

208

帖子

0

粉丝