8434|30

92

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ce的串口为什么会死机 [复制链接]

每发送一组字符或一个字符,pc机仅能收到一个字符,而且开发板还死机,若发送不成功,开发板不死机.开发板还不能接受,一接收就死机.不知道怎么回事,请大家指点指点,是驱动程序问题还是系统程学问题还是应用程序问题?

最新回复

是啊。很麻烦  详情 回复 发表于 2008-8-5 15:19
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
拜托,你这样问,谁知道阿,会死机,很可能是内存溢出,那就是你程序问题了,你要么把程序贴上来。
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
UpdateData(true);
m_sendBuffer.TrimLeft();
m_sendBuffer.TrimRight();
DWORD dwBytesWrite=m_sendBuffer.GetLength();
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
ClearCommError(hRle,&dwErrorFlags,&ComStat);
PurgeComm(hRle, PURGE_TXCLEAR);
bWriteStat=WriteFile(hRle,m_sendBuffer,
                dwBytesWrite,& dwBytesWrite,NULL);//
        if(bWriteStat==FALSE)
        {AfxMessageBox(_T("写串口失败!"));
                if(GetLastError()==ERROR_IO_PENDING)
                {
                        WaitForSingleObject(m_osWrite.hEvent,1000);
                }
        }
这是发送的程序
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢谢你的回帖,我再简单介绍一下情况。我是在公司的开发板上运行ce系统,现在串口不能用,不知道什么原因。写这些应用程序就是为了调试串口能不能用,现在发送一组字符,只能收到第一个字符,然后就死机了;若下位机收不到信息就不会死。至于接受,上位机已发送,开发办就死机了。请各位多多指点。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
以前我遇到过一种情况是,BIOS里的串口的中断值要WINCE里设置的一样,这个你问问做你们板子NK的人,他应该知道做NK时的值,看这个值和BIOS里的一样不一样
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢你的热心帮助,我问了一下同事,与这个无关,而且以前同事的调试到可以正常发送但不能接收。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
以前可以正常发送的时候是这个程序吗,程序改过没有??
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
还没该好,屏掉了,BOOL InstallSoftwareISR(PSER16550_INFO pHWHead,PVOID pIoAddr,WORD uMulti)这个函数,发送正常了但不能接收.每一接收就死机.
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

9
 
那就是收数据有问题了
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
我屏蔽掉了一些低层函数,收发都可以了。但是还有很多问题,发送时在WriteFile函数里的要发送字节数量的参数需是实际的二倍,接收端才能收到正确数量的字节;而且还不能更换波特率,只能用9600波特.
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
你的接收代码是什么样的?贴出来看看
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

12
 
原来的问题解决了一部分,现在忙别的问题。目前只能用串口2,其余的串口打不开。请大家多提建议,怎么注册串口一?内核要不要做些改动?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

13
 
怎么没人回答呢?现在还有很多问题:发送时在WriteFile函数里的要发送字节数量的参数需是实际的二倍,接收端才能收到正确数量的字节;而且还不能更换波特率,只能用9600波特;接收时总收到很多'a';串口一不知怎么注册.谁能帮我一把,定重谢,很着急.
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

14
 
两倍?
双字节?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

15
 
是Unicode引起的吗?猜测
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

16
 
发送应该是,接受不知道为什么。接受好像用的不是中断方式,是轮询方式。没做过这个,不知道怎么解决?现在的问题:不知怎么注册串口一;接受有问题;其余的波特率不能用。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

17
 
现在剩下的的主要问题:不知怎么注册串口一;接收有问题(总收到很多字符a,其实上位机并没发送a).谁能帮我解决,我就送10个qq币给谁.欢迎大家提建议.
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

18
 
没人理我,自己顶了。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

19
 
CE下的串口通信是很娇贵,很容易就被冲死机了,确实要好好设计程序才行。
波特率如果发送端采用的是9600,那你也只能设置为9600才能接收啊,别的波特率当然不行了
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

20
 
波特率当然是一致了。收到a的问题解决了,在接受处加个延时就好了。现在还剩下以下几个问题:只能用9600的波特率;收发会漏码或加码,漏码就是接收时漏掉一些字符,多码就是会重复某些字符;串口不是很好用,需要重起或刷新几次才能正常使用。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表