在vendercmnd中增加了向pc机发数

[复制链接]
1064|7
 楼主| zhanglli 发表于 2015-4-2 21:33 | 显示全部楼层 |阅读模式
自己弄了块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;
}
 楼主| zhanglli 发表于 2015-4-2 21:34 | 显示全部楼层
问题是我第一次发程序响应了如图


 楼主| zhanglli 发表于 2015-4-2 21:34 | 显示全部楼层
可第二次再发vender cmnd就出现问题了如图

 楼主| zhanglli 发表于 2015-4-2 21:35 | 显示全部楼层
如果不在vender cmnd中增加串口发送程序没有问题 但找不出原因 为什么呢?
lium 发表于 2015-4-2 21:35 | 显示全部楼层
SetupCommand是无需修改的
guoyt 发表于 2015-4-2 21:35 | 显示全部楼层
串口单独发送有没有问题
hanwe 发表于 2015-4-2 21:35 | 显示全部楼层
串口太慢了,别跟USB命令绕在一起。可以用USB口读回调试数据,没必要用UART输出调试。
 楼主| zhanglli 发表于 2015-4-2 21:36 | 显示全部楼层
嗯,我排查下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1016

主题

9386

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部