我首先利用串口调试助手发送字符串“**&&”,大家知道得在最后敲击回车键才能成功发送数据,但是利用VC发送数据的时候定义的字符串比如a=“**&&”利用MScomm发送数据的时候,我断点调试在下面的程序中的TxData数组已经接受到**&&字符就是没有回车键的出现,导致发送不成功。大家给点意见啊。下为程序。基于对话框的MScomm控件的发送。
初始化:
BOOL CZDlg::OnInitDialog()
{
m_ctrlComm.SetCommPort(2);
m_ctrlComm.SetInputMode(1);
m_ctrlComm.SetInBufferSize(1024);
m_ctrlComm. SetOutBufferSize(1024);
m_ctrlComm.SetSettings("9600,n,7,1");
if(!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE
m_ctrlComm.SetRThreshold(1);
m_ctrlComm.SetInputLen(0);
m_ctrlComm.GetInput();
a="**&&";//回车键怎么设置
}
发送数据:
void CZDlg::OnSend()
{
int Count=sizeof(a);
CByteArray array;
BYTE TxData[2048];
array.RemoveAll();
array.SetSize(Count);
for(int i=0;i<Count;i++)
array.SetAt(i,TxData[i]);//断点调试TxData已经收到**&&
m_ctrlComm.SetOutput(COleVariant(array));
初始化:
BOOL CZDlg::OnInitDialog()
{
m_ctrlComm.SetCommPort(2);
m_ctrlComm.SetInputMode(1);
m_ctrlComm.SetInBufferSize(1024);
m_ctrlComm. SetOutBufferSize(1024);
m_ctrlComm.SetSettings("9600,n,7,1");
if(!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE
m_ctrlComm.SetRThreshold(1);
m_ctrlComm.SetInputLen(0);
m_ctrlComm.GetInput();
a="**&&";//回车键怎么设置
}
发送数据:
void CZDlg::OnSend()
{
int Count=sizeof(a);
CByteArray array;
BYTE TxData[2048];
array.RemoveAll();
array.SetSize(Count);
for(int i=0;i<Count;i++)
array.SetAt(i,TxData[i]);//断点调试TxData已经收到**&&
m_ctrlComm.SetOutput(COleVariant(array));
}
1
2
3
4
|
array.SetSize(Count+1);
for
(
int
i=0;i<Count;i++)
array.SetAt(i,TxData[i]);
//数据
array.SetAt(Count,
'\r'
);
//添加回车
|
转自:http://bbs.csdn.net/topics/390270681?page=1#post-392835064