下位機(jī)是用DSP和CH375,現(xiàn)在是PC可以給下位機(jī)發(fā)數(shù)據(jù),而且下位機(jī)也能正確地認(rèn)識,可是下位機(jī)確不能給上位機(jī)發(fā)數(shù)據(jù),不知知道是怎么回事?以下是我上位機(jī)VC的一段代碼,麻煩哪位大俠幫著看看! if(m_test.GetCheck()) //開始測試,表示已經(jīng)test已經(jīng)打上鉤了 {
mWriteBuf[0]=TEST_START; mTotal=1; if ( CH375WriteData( 0, &mWriteBuf, &mTotal ) ) // 發(fā)送成功 { 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) //如果下傳成功的話,才能上傳數(shù)據(jù),不然一直等待 { if(writeflag==1) break; } m_describe.InsertString(-1,_T( "kankan" ));
CH375SetBufUpload( 0, 1 ); // 這里調(diào)用是為了清空內(nèi)部上傳緩沖區(qū),對于緩沖上傳,應(yīng)該在正式上傳數(shù)據(jù)之前刷新USB接收緩沖區(qū),否則緩沖區(qū)中可能會有之前的無效數(shù)據(jù) mLength = 4096; if ( CH375ReadData( 0, &mReadBuf, &mLength ) ) // 接收成功,實際是到緩沖區(qū)中取數(shù)據(jù) { // 對于緩沖上傳方式,CH375ReadData總是立即返回,所以要嚴(yán)格檢查返回長度是否滿足 for(i=0;i<=mLength;i++) { str.Format("%d\r\n",mReadBuf[i]); m_str += str; UpdateData(FALSE); } Sleep(8); //dalay 8ms 這樣可以讓緩沖區(qū)有一定量的數(shù)據(jù)后,再去讀數(shù)據(jù) } else//沒有接受成功 { m_describe.InsertString(-1,_T( "read fail" )); m_describe.InsertString(-1,_T( "還沒有數(shù)據(jù)上傳 " )); Sleep(1); //dalay 1ms } }