我在用C++做一個串口程序,用了MSComm控件,新手遇見了點問題,我用串口助手試了試我的程序,如果十六進制發送那麼我接收的數據和串口助手發送的數據不一致,出現了亂碼。我還想把我接收到的數據存儲在txt文件中,可能是我數據類型沒有轉換對,txt文件裡的接收數據也是亂碼,不知道哪位能指點一下。
void CSendcomDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k,counts;
char *str;
CString inputdata;
CByteArray hexdata;
//BYTE rxdata[2048];
CString strtemp;
if(m_Com.GetCommEvent()==2)
{
variant_inp=m_Com.GetInput();
str=(char*)(unsigned char*)variant_inp.parray->pvData;
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
m_recv+=strtemp;
}
FILE *pFile = fopen("data.txt","a");
fwrite(str,1, strlen(str), pFile);
fclose(pFile);
}
UpdateData(FALSE);
}
亂碼和串口傳輸沒有關系,
要麼你發送接收的數據不一致,要麼兩邊的解碼不一致