串口运行在WINCE6.0

qazws110 2010-01-16 10:49:48
各位先进好,这是我要运行在CE 6的串口源代码,
运行到SetCommState都无法设置(传回我设置的"Set init error!!!")
并传回 内存错误 的讯息!

可是我把源码移植到XP上执行却是可行的,请问我哪里出错了,需要修改的吗?

多谢各位先进指教!!


CE : smartdevice project ->MFC
XP: MFC



com1 = CreateFileW(_T("COM2"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(com1 == INVALID_HANDLE_VALUE)
{
m_Recbox.SetWindowTextW(_T("Create init error!!!"));
}
else
{
m_Recbox.SetWindowTextW(_T("Create init sucessed!!!"));
}
dcb1.DCBlength = sizeof (DCB);
GetCommState(com1,&dcb1);

dcb1.BaudRate=CBR_38400;
dcb1.fBinary=TRUE;//win32必须为true
dcb1.fParity=TRUE;
dcb1.fOutxCtsFlow=FALSE;
dcb1.fOutxDsrFlow=FALSE;
dcb1.fDtrControl=DTR_CONTROL_ENABLE;
//dcb1.fDsrSensitivity=FALSE;
//dcb1.fOutX=FALSE;
//dcb1.fInX=FALSE;
//dcb1.fErrorChar=FALSE;
//dcb1.fNull=FALSE;
dcb1.fRtsControl=RTS_CONTROL_ENABLE;
dcb1.fAbortOnError=FALSE;
dcb1.ByteSize=8;
dcb1.Parity=NOPARITY;
dcb1.StopBits=ONESTOPBIT;



if (SetCommState(com1,&dcb1) ==0)
{
CString string_error;
DWORD serial_error;
m_Recbox.SetWindowTextW(_T("Set init error!!!"));
string_error.FormatMessage("%d",GetLastError());
MessageBoxW((LPCTSTR)string_error,_T("Error"), MB_OK);
}
else
{
m_Recbox.SetWindowTextW(_T("Set init sucessed!!!"));
}



...全文
70 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhou1xp 2010-01-16
  • 打赏
  • 举报
回复
你可以把你的CString的值转化一下,赋给一个BYTE或者char型的数组么
qazws110 2010-01-16
  • 打赏
  • 举报
回复
zhou1xp 大 我找到我问提出在哪里了>< 我COM后面 忘了+ ":"

现在在试 WriteFile传送字串,它是使用BYTE型态,我的字串是CString型态

能给点建议和方向吗?

多谢!
zhou1xp 2010-01-16
  • 打赏
  • 举报
回复
不好意思,我看错了
zhou1xp 2010-01-16
  • 打赏
  • 举报
回复
我晕,楼主,你看你的代码 if (SetCommState(com1,&dcb1) ==0)
这才是失败好不好,
else
{
m_Recbox.SetWindowTextW(_T("Set init sucessed!!!"));
}
已经是成功的,你自己把条件搞错了吧
zhou1xp 2010-01-16
  • 打赏
  • 举报
回复
DWORD GetLastError( void ),查看错误代码,看是什么错误
qazws110 2010-01-16
  • 打赏
  • 举报
回复
我试着去传送单一的值,传送端式CE平台,接收端是XP的HyperTerminal,可是都没有接收到讯息!

可以帮我看看我的源码吗?



BYTE n=TEXT('A');
if (!WriteFile(com1,&n,0,NULL))
{
m_Recbox.SetWindowTextW(_T("write error!!!"));
}

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧