网上下的wince下的串口控件,只能输出不能接收!在线等!

crazystrays 2007-08-02 09:28:41
下面是程序源码,计算机发送数据,wince根本就接受不到数据,而wince科研发送数据,计算机能够正常接收!调试发现if (ComStat.cbInQue > 0) 这个条件总是不满足,所以根本没有进行readfile操作,希望大家能够帮助!还有一点是,读串口操作是在主程序中按照启动线程来操作的!
if (ComStat.cbInQue > 0)
{
OVERLAPPED ovlCommPort = new OVERLAPPED();
int BytesRead = 0;
ReadFile(hComm, commRead, NumBytes, ref BytesRead, ref ovlCommPort);
//ReadFile(hComm, commRead, NumBytes, ref BytesRead,0);
return BytesRead;
}
else
{
//MessageBox.Show("Buff中没有数据");
return 0;
}
...全文
473 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgn1022 2008-05-13
  • 打赏
  • 举报
回复
想知道lz的问题是怎么解决的 我遇到同样的问题
载舟之水 2007-11-25
  • 打赏
  • 举报
回复
一个小问题。
comiscience 2007-11-25
  • 打赏
  • 举报
回复
这是我写的就能读。我觉得是你OVERLAPPED ovlCommPort = new OVERLAPPED(); 这里的问题
DWORD dwCommEvent;
DWORD dwRead;
CString str;

DWORD dwReadErrors;
COMSTAT cmState;
DWORD willReadLen;
BYTE * readBuf = NULL;//读取的字节

//有哪些串口需要监视
while(hCom != INVALID_HANDLE_VALUE)
{
if(SetCommMask(hCom, EV_RXCHAR))
{
if(WaitCommEvent(hCom,&dwCommEvent,NULL))
{
if (dwCommEvent & EV_RXCHAR)
{
ClearCommError(hCom,&dwReadErrors,&cmState);
willReadLen = cmState.cbInQue ;
if (willReadLen <= 0)
{
//MessageBox(L"2");
break;
}
readBuf = new BYTE[willReadLen];
ReadFile(hCom, readBuf, willReadLen, &dwRead,0);
if (dwRead>0)
{
m_editShow = readBuf;
UpdateData(false);
break;
}
}
}
}
}
smofx 2007-11-24
  • 打赏
  • 举报
回复
一般都是流控制设置
ce串口驱动的流控制设置为 0 就可以
magicpq99 2007-11-14
  • 打赏
  • 举报
回复
你可以看看ComStat这个对象里的数据是在什么地方获取的,可能是没有正确获取
Seattle2006 2007-09-29
  • 打赏
  • 举报
回复


我也遇到了同样的问题;WINCE串口只能发送数据,不能接收数据;我用的是 “三星2410” ARM9 的板子;

不知道 LZ 的问题解决了吗?
冰杰007 2007-09-28
  • 打赏
  • 举报
回复
我知道你是什么问题!可不是你的问题,呵呵,硬件的感应不到串口发送来的数据信息
crazystrays 2007-08-16
  • 打赏
  • 举报
回复
我用的是pxa255,程序在x86平台下运行正确!
yuanqh20000065 2007-08-13
  • 打赏
  • 举报
回复
我问你是用哪个硬件平台,比如x86、arm9等
crazystrays 2007-08-04
  • 打赏
  • 举报
回复
我用的是wince的平台,C sharp 编程语言,这个问题困扰一个星期了,物理接口肯定没有问题,因为wince 的eboot启动的DEBUG信息和我输入的控制命令都能够成功响应,就是我的程序不行!而且我的程序能够成功发送到pc机,问题好奇怪!关键我刚刚开始学习wince(4个月)和wince平台下的应用程序开发,C sharp 也是第一次接触,跟c++不一样,好多还不熟悉,如果用C++还好说,很多代码都可以用。希望能和你交流!
去掉if (ComStat.cbInQue > 0)没有用,关键好像是readfile()程序没有反应
crazystrays 2007-08-04
  • 打赏
  • 举报
回复
我用的wince平台,c#编程语言,你的程序没有问题吗?
dthxman 2007-08-03
  • 打赏
  • 举报
回复
最直接的方法,把if (ComStat.cbInQue > 0)去掉,在试试看
yuanqh20000065 2007-08-03
  • 打赏
  • 举报
回复
我前段时间刚好作了一个串口程序,不知道你用的是那个硬件平台。
yashi 2007-08-02
  • 打赏
  • 举报
回复
Comstat是个什么样的结构?ComStat.cbInQue 这个值是怎么获得的?你贴的这段代码,别人看不明白啊。

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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