用BUSHOUND看,你要你添入數(shù)據(jù)的格式是正確的肯定是沒什么問題的。 檢查一下你收到的數(shù)據(jù)是否正確,用串口打印出來看看,就接一個(gè)TX應(yīng)該不是狠麻煩。然后不要程序盡可能簡單些,把端點(diǎn)1的數(shù)據(jù)去掉,先不要操作端點(diǎn)1,一步一步的調(diào)試,應(yīng)該狠快的。 另外如果真的是接收到的數(shù)據(jù)錯(cuò)誤的,那么狠可能是讀寫時(shí)序有問題。
請問在CH372UPDOWN上位機(jī)程序中端點(diǎn)2上傳的線程部分程序里 if(pDlg->m_open && pDlg->m_trdup2) //設(shè)備打開,線程啟動(dòng) { /**************在線程中用CreateFile打開設(shè)備,因?yàn)槊總€(gè)句柄同一時(shí)候只能執(zhí)行一個(gè)API**************************/ if ( pDlg->T2UHandle != INVALID_HANDLE_VALUE ) { // 打開設(shè)備成功 datalen = min( pDlg->m_uplen2, sizeof(mBuf)); dlen = datalen; if(CH375ReadData((ULONG)pDlg->T2UHandle,&mBuf[0],&dlen)) {//操作成功輸出數(shù)據(jù) CHAR buffer[mCH375_PACKET_LENGTH*8*2+1]; ULONG i,j; for(i=0,j=0;i{ sprintf(&buffer[j],"%02X ",mBuf); j += 3; } buffer[j] = '\0'; //每次數(shù)據(jù)用空格隔開 ShowUpdata(buffer,j); //顯示數(shù)據(jù) {//更新長度顯示 char tem[50]=""; UpCount=UpCount+dlen; sprintf(tem,"Up: %d",UpCount); SetDlgItemText(pDlg->m_hWnd,IDC_UpCount,tem); } } else if ( !pDlg->m_close ) MessageBox(NULL,"端點(diǎn)2上傳失?。∪绻O(shè)備斷開過那么請先關(guān)閉本程序","DEBUG372",MB_OK|MB_ICONSTOP); } } 請問在ShowUpdata(buffer,j); //顯示數(shù)據(jù) 這句后面的中括號前是不是少了什么代碼,怎么直接在函數(shù)調(diào)用后