下位机是用DSP和CH375,现在是PC可以给下位机发数据,而且下位机也能正确地认识,可是下位机确不能给上位机发数据,不知知道是怎么回事?以下是我上位机VC的一段代码,麻烦哪位大侠帮着看看! if(m_test.GetCheck()) //开始测试,表示已经test已经打上钩了 {
mWriteBuf[0]=TEST_START; mTotal=1; if ( CH375WriteData( 0, &mWriteBuf, &mTotal ) ) // 发送成功 { m_describe.InsertString(-1,_T("Start test now...")); writeflag=1; } else // 写操作失败 { m_describe.InsertString(-1,_T( "S0-T0 CH375WriteData return error" )); writeflag=0; } while(1) //如果下传成功的话,才能上传数据,不然一直等待 { if(writeflag==1) break; } m_describe.InsertString(-1,_T( "kankan" ));
CH375SetBufUpload( 0, 1 ); // 这里调用是为了清空内部上传缓冲区,对于缓冲上传,应该在正式上传数据之前刷新USB接收缓冲区,否则缓冲区中可能会有之前的无效数据 mLength = 4096; if ( CH375ReadData( 0, &mReadBuf, &mLength ) ) // 接收成功,实际是到缓冲区中取数据 { // 对于缓冲上传方式,CH375ReadData总是立即返回,所以要严格检查返回长度是否满足 for(i=0;i<=mLength;i++) { str.Format("%d\r\n",mReadBuf[i]); m_str += str; UpdateData(FALSE); } Sleep(8); //dalay 8ms 这样可以让缓冲区有一定量的数据后,再去读数据 } else//没有接受成功 { m_describe.InsertString(-1,_T( "read fail" )); m_describe.InsertString(-1,_T( "还没有数据上传 " )); Sleep(1); //dalay 1ms } }