[圈圈教你玩USB] 求教:D12读取ID成功,主机却检测不到USB设备

[复制链接]
 楼主| baiguo 发表于 2010-8-26 16:42 | 显示全部楼层 |阅读模式
D12读取ID成功,发送USB连接命令后,主机却检测不到USB设备

//================================================
//Main_Program
void main(void)
{
unsigned char id0=0;
unsigned char id1=0;
unsigned char intSource=0;
unsigned char temp=0;
unsigned char temp1=0;

DDRA|=0xE0;
Uart_Init();
    DDRB|=0xF0;
    DDRD.2=0;
   
    delay_ms(100);
  
D12WriteCmd(0xFD);
id0=D12ReadData();
id1=D12ReadData();

if(id0==0x12 && id1==0x10)
  printf(" ID is correct! Congratulations! \r\n");
  
UsbDisconnect();
UsbConnect();
delay_ms(1000);

//**********************************************************
    for(;;)
    {
     if(D12GetIntPin()==0)



以上是部分代码

//================================================
//函数功能:USB断开连接函数
//入口参数:无
//返    回:无
//备    注:无
//================================================
void UsbDisconnect(void)
{
D12WriteCmd(D12_SET_MODE);    //写设置模式命令
D12WriteData(0x06);           //设置模式的第一字节
D12WriteData(0x47);           //设置模式的第二字节
delay_ms(1000);
}

//================================================
//函数功能:USB连接函数
//入口参数:无
//返    回:无
//备    注:无
//================================================
void UsbConnect(void)
{
D12WriteCmd(D12_SET_MODE);    //写设置模式命令
D12WriteData(0x16);           //设置模式的第一字节
D12WriteData(0x47);           //设置模式的第二字节
}
 楼主| baiguo 发表于 2010-9-1 13:43 | 显示全部楼层
问题已解决---犯了个低级错误,连接CS的pin没有设置为输出(但ID却能读出)

ID is correct! Congratulations!
USB总线挂起!
USB总线复位!
USB总线挂起!
USB总线挂起!
USB总线挂起!
USB总线挂起!
USB端点0输出!
读端点0缓冲区8字节。
128  6  0  1  0  0  64  0  
USB总线复位!
USB端点0输出!
读端点0缓冲区8字节。
128  6  0  1  0  0  64  0  
USB总线复位!
USB端点0输出!
读端点0缓冲区8字节。
128  6  0  1  0  0  64  0  
USB总线复位!
USB端点0输出!
读端点0缓冲区8字节。
128  6  0  1  0  0  64  0  
USB总线挂起!
computer00 发表于 2010-9-23 00:54 | 显示全部楼层
数据没有成功写到芯片里去吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

68

帖子

0

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