3632|11

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求救!evc串口收发数据问题 [复制链接]

写入串口程序:
        int len = 8        ;                         /* 取得输入字符串长度 */
        char psendbuf[8];
        memset(psendbuf,0,8);

    psendbuf[7]=0x01;
        psendbuf[6]=0x01;
        psendbuf[5]=0x00;
    psendbuf[4]=0x00;
        psendbuf[3]=0x00;
        psendbuf[2]=0x08;
        psendbuf[1]=0x3d;
        psendbuf[0]=0xcc;
   
   
        if(WriteFile(m_hComm, psendbuf, len, &dwactlen, NULL))         /* 从串口发送数据 */
        {
                MessageBox(L"成功");
        }
        else
                MessageBox(L"失败");
     Sleep(50);

最新回复

问题解决,谢谢  详情 回复 发表于 2009-2-7 14:59
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
读取串口程序
        DWORD dwLength;
        char  recvBuf[512];
        memset(recvBuf,0,1024);
        if (m_hComm != INVALID_HANDLE_VALUE)
        {                                                                                                                        /* 从串口读取数据 */
                BOOL fReadState = ReadFile(m_hComm, recvBuf, 1024, &dwLength, NULL);
                if(!fReadState)
                {
                        MessageBox(_T("无法从串口读取数据!"));
                }
                else
                {
                        if(dwLength != 0)
                        {
                                MessageBox(L"1234");
                                delete []recvBuf;
                        }
                }
        }
请帮忙分析是数据写入的错误还是数据读取的错误,为什么一直接收不到数据?
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
char  recvBuf[512];
memset(recvBuf,0,1024);
首先,memset时指定的大小1024与数组大小不符
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
什么样的程序流程?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
如果串口支持同时发送和接收,一般是启动一个接收线程来接收数据.
另外,楼主的程序有先设波特率和timeout吗?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
写是哪里写的?读是哪里读的?
如果你是想在同一串口上写入数据,读出数据的话,你需要把串口的TX线和RX线连起来才行
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
写入和读取的都是串口,Tx线和Rx线也都连起来了,我这里只是测试串口通讯是否成功就没有启动线程,波特率和时间都设置了,要求的是以16进制数据传送,串口通讯用串口调试助手是没有什么问题的,只是自写的程序就无法读取数据,很急!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
1.检查硬件链接是否正确。ls的兄弟说的再补充一个。。。注意TX RX交叉的问题。。。
2.你可以把设备搞个RS232的转接接到PC上用串口调试助手看看来往发发数据。确认硬件是正常工作的。有数据
或者你干脆就拿示波器看看也可以
3.程序上看不错来什么。。都是可以的楼上的兄弟也说了波特率之类的要确认。不对也无法通讯的。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
用串口调试是没有问题的,波特率什么的设置也没有问题,可是就是没有数据,急急急!!!!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
建议你做一个RS232的转接接到PC端上看看有没有数据。
或者用示波器量一下波形就知道了。如果有波形说明有数据,只是你没有接受到。。。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

11
 
还是没有数据!
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
问题解决,谢谢
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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