在编写串口收发的嵌入式程序时碰到了一些奇怪的问题,主要是发送的数据乱码,接收的数据为空,但是数据长度并不为零。经过一些来来回回的修改,反反复复的参考别人的代码,最终认为主要是因为wince内部使用的是unicode编码,而PC机端的串口调试助手都是ascii码,两者之间需要转换,即在发送数据之前要先把unicode转换成标准ascii码,收到数据数据后要转换回来,转换方法都是在网上找大神的资料参考的:
unicode转换成标准ascii码:
CString csStr(_T("输入350个以上的汉字"));
USES_CONVERSION;
char *pBuf1 = T2A(csStr);
对换为unicode:
char *p = "123456";
CString str = (CString)(CStringA)p;
参考资料:
http://www.tc5u.com/mfc/1870767.htm
http://www.myexception.cn/vc-mfc/1228882.html