标题:新手求助!关于VC下 MSCOMM串口数据发送!!谢谢各位!
只看楼主
beigong
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-21
 问题点数:0 回复次数:3 
新手求助!关于VC下 MSCOMM串口数据发送!!谢谢各位!

小弟初来论坛,刚学用VC不久,求助大家一个关于VC下 MSCOMM串口数据发送的问题!
我用VC的MSCOMM控件做一个计算机串口与单片机通信的东西。


我的VC串口设置代码如下:

if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);

m_ctrlComm.SetCommPort(1); //选择com1
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");

m_ctrlComm.SetSettings("2400,n,8,1"); //波特率2400,无校验,8个数据位,1个停止位

m_ctrlComm.SetInputMode(1); //1:表示以二进制方式检取数据
m_ctrlComm.SetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_ctrlComm.SetInputLen(0); //设置当前接收区数据长度为0
m_ctrlComm.GetInput();//先预读缓冲区以清除残留数据

在OnComm事件中的数据发送我试过:
CByteArray array;
int TxData[];
array.SetSize(sizeof(TxData)); //TxData为要发送数据的数组数据
for(int i=0;i<sizeof(TxData);i++)
array.SetAt(i, TxData[i]);
m_ctrlComm.SetOutput(COleVariant(array));



CByteArray array;
array.SetSize(8);

array[0] = 0xF2;
array[1] = 0xF2;

array[2] = 0x00;
array[3] = 0x02;

array[4] = 0x00;
array[5] = 0xC8;

array[6] = 0x00;
array[7] = 0xCA;

m_ComPort.SetOutput(COleVariant(array));


现能够按我自己的要求接收并显示数据,但发送却出了问题,加入发送代码时不是没有反应就是没有响应,求助于各位,希望大家帮个忙,在下感激不尽!!

搜索更多相关主题的帖子: 串口 MSCOMM 数据 
2007-11-21 09:47
beigong
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-21
得分:0 
请各位帮我看看吧,别没人理啊!!
2007-11-21 11:04
独行之
Rank: 2
等 级:论坛游民
帖 子:60
专家分:30
注 册:2007-6-19
得分:0 
这是新手区
2007-11-21 11:10
beigong
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-21
得分:0 
我的问题有难度吗??不太了解,我也刚学VC++不就,只是以前用过C语言。
2007-11-21 11:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-187501-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.403290 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved