注册 登录
编程论坛 新人交流区

新手求助!关于VC下 MSCOMM串口数据发送!!谢谢各位!

beigong 发布于 2007-11-21 09:47, 2286 次点击

小弟初来论坛,刚学用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));


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

3 回复
#2
beigong2007-11-21 11:04
请各位帮我看看吧,别没人理啊!!
#3
独行之2007-11-21 11:10
这是新手区
#4
beigong2007-11-21 11:13
我的问题有难度吗??不太了解,我也刚学VC++不就,只是以前用过C语言。
1