單片機(jī)
void CTemDisplayDlg::OnOnCommMscomm1()
{
// TODO: Add your control notification handler code here
m_strRXData=""; //每次進(jìn)入串口函數(shù)將編輯框內(nèi)容清空
VARIANT variant_inp; //可以用 Variant 數(shù)據(jù)類(lèi)型來(lái)替換任何數(shù)據(jù)類(lèi)型,數(shù)值數(shù)據(jù)可以是任何整型或?qū)嵭蛿?shù)
COleSafeArray safearray_inp; //定義具有任意類(lèi)型的變量safearray_inp
LONG len,k; //定義長(zhǎng)整形變量
BYTE rxdata[2048]; //設(shè)置BYTE數(shù)組
CString strtemp; //定義字符型變量
if(m_Comm.GetCommEvent()==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)度 //一到這里就出錯(cuò)
for(k=0;k safearray_inp.GetElement(&k,rxdata+k);//轉(zhuǎn)換為BYTE型數(shù)組
for(k=0;k {
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //將字符型送入臨時(shí)變量strtemp中存放
m_strRXData+=strtemp; //加入接收編輯框?qū)?yīng)字符串
}
m_strRXData+="\r\n";
}
UpdateData(FALSE); //更新編輯框內(nèi)容
}
我是菜鳥(niǎo),剛學(xué)用VisualC++編串口通信的上位機(jī)程序,想顯示溫度,可一到 len=safearray_inp.GetOneDimSize(); 就出錯(cuò),哪位大神能幫忙看看!