|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
[求助]mscomm控件的串口接收程序,接收單片機(jī)發(fā)送的數(shù)據(jù)有問(wèn)題 |
| 作者:jacon411 欄目:工控天地 |
在兩臺(tái)計(jì)算機(jī)之間實(shí)驗(yàn),軟件可以接收到另一臺(tái)計(jì)算機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)(用串口調(diào)試工具手動(dòng)或自動(dòng)發(fā)送都行)。 但用單片機(jī)發(fā)送數(shù)據(jù)時(shí),軟件沒有響應(yīng),接收不到數(shù)據(jù),也不能保存文件。單片機(jī)的數(shù)據(jù)發(fā)送量512byte/s。是不是數(shù)據(jù)量較大,來(lái)不及顯示及保存數(shù)據(jù)?請(qǐng)幫忙,感激不盡。。。。。 串口事件源碼是: void CSerialView::OnOnCommMscomm1() { // TODO: Add your CONTROL notification handler code here VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; BYTE rxdata[2048]; //設(shè)置BYTE數(shù)組 An 8-bit integerthat is not signed. CString strtemp; if(m_comm.GetCommEvent()==2) //事件值為2表示接收緩沖區(qū)內(nèi)有字符 { ////////以下加入處理代碼 variant_inp=m_comm.GetInput(); //讀緩沖區(qū) safearray_inp=variant_inp; //VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量 len=safearray_inp.GetOneDimSize(); //得到有效數(shù)據(jù)長(zhǎng)度 for(k=0;k<len;k++) safearray_inp.GetElement(&k,rxdata+k);//轉(zhuǎn)換為BYTE型數(shù)組,后面保存到文件 for(k=0;k<len;k++) //將數(shù)組轉(zhuǎn)換為Cstring型變量 { BYTE bt=*(CHAR*)(rxdata+k); //字符型 strtemp.Format("%c",bt); //將字符送入臨時(shí)變量strtemp存放 m_strRXData+=strtemp; //把對(duì)應(yīng)字符串加入接收編輯框 } FILE *pFile=fopen("ecg.dat","ab+");//追加打開二進(jìn)制(b)文件 fwrite(rxdata,1,len,pFile);//寫文件 fflush(pFile); } UpdateData(FALSE); //更新編輯框內(nèi)容 } |
| 2樓: | >>參與討論 |
| 作者: zgr 于 2007/2/13 17:22:00 發(fā)布:
建議你先下個(gè)串口調(diào)試工具來(lái)看看 看看是不是單片機(jī)那邊有問(wèn)題 google搜一下就有 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |