5842|10

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC串口通讯问题 [复制链接]

用EVC编了一个串口自发自收的程序,串口能够打开,但是不写数据。程序应该是对的,与书上写的以及网上通过测试的程序一样。下面是写数据部分的一段程序。
DWORD CSerial::WritePort(const BYTE *buf,DWORD dwCharToWrite)
{
BOOL fWriteState;
DWORD dwBytesWritten;
//写入数据
fWriteState=WriteFile(hPort,buf,dwCharToWrite*sizeof(BYTE),&dwBytesWritten,NULL);
if(!fWriteState)
{
//不能写数据
MessageBox(NULL,TEXT("Can't Write String to Comm"),TEXT("Error"),MB_OK);
dwBytesWritten=0;
}
return dwBytesWritten;
}
测试的 const BYTE byte='a';在调用这个函数时,我是这么写的CSerial cs;cs.WritePort(&byte,1);为什么不能写入?到底是哪里错了??求助各位高手了!!感谢!!

最新回复

谢谢楼上了,我会去试试的。  详情 回复 发表于 2008-4-11 23:53
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有用过MFC,写入返回的错误是什么呢,LZ?
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
要加个换行动作吧
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
不能写入,是writefile返回错误。还是在串口另外一端readfile没有接收到数据。
建议先下载一个CE的串口调试程序,确认物理串口没有问题。
另外:CE下的串口访问非常成熟和常用,应该不会有什么问题的。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
很抱歉,搞错了,最终发现是串口没有打开。对这方面实在是不懂啊,在EVC的模拟器下试过,总之无法打开串口压呀。不明白为什么。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
那你串口打开的那段函数呢 ,,看看出问题了没有,可以直接连pc,用XP系统的超级终端也可以测试,
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
重说一下我的问题,串口能够打开了,数据也能够写入,测试的数据还是那个,但是返回的dwBytesWritten=0(没有出现不能写入串口的对话框)。没有想通这个问题。拜托各位帮忙解决一下。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
DWORD CSerialPort::SendData(const unsigned char*uBuf,DWORD bufLen)
{               
        DWORD dwBytesWritten;
        DWORD dwWritten =0 ;       
        if(m_hComm == INVALID_HANDLE_VALUE ||uBuf==NULL || bufLen<0)
                return -1;
        PurgeComm(m_hComm,PURGE_TXCLEAR);
        while (TRUE)
        {       
                if (WriteFile (m_hComm,uBuf+dwWritten,bufLen-dwWritten, &dwBytesWritten,NULL))                                                               
                {
                        dwWritten = dwWritten + dwBytesWritten;               
                        if (dwWritten == bufLen)
                                return dwWritten;       
                }
                else
                {
                        return -2;
                }
        }       
        return 0;
}
//用这个试试
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
串口通信的测试最好用实物,不要用模拟器
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
up
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

11
 
谢谢楼上了,我会去试试的。
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表