VC++中串口收发数据的问题
在自己建立的串口类SerialPoint中,定义了一串口发送函数:boolSerialPort::send(constchar*sendBuf,constintbytes...
在自己建立的串口类SerialPoint中,定义了一串口发送函数:
bool SerialPort::send(const char * sendBuf,const int bytesToSend,unsigned long &bytesSend)
//功能:发送数据函数
//参数:sendBuf:发送缓冲区; bytesToSend:要发送字节数; bytesSend: 实际发送字节数
在另外一个类中,用到该函数
char cmdBuf[6];
ret = sPort->send(cmdBuf,6,byteSend); //ret为bool型变量
if( (byteSend != 6) || (ret == false) )
{
TRACE("EDA9017::cmdGetConf,串口发送失败\n");
return false;
}
我想问的是,cmdBuf数组中,一共有6个字符(即,发送缓冲区最大有6个字节,或,要发送的字节数为6。为什么调用send函数时,要求实际发送字节数byteSend也必须为6?缓冲区最大字节数为6,但是我可以只保存了5个字节数据呀,为什么要求发送的一定是6个字节呢?
byteSend != 6会导致发送失败,这点我不明白~~
求高手指教,分数不够,希望不要介意 展开
bool SerialPort::send(const char * sendBuf,const int bytesToSend,unsigned long &bytesSend)
//功能:发送数据函数
//参数:sendBuf:发送缓冲区; bytesToSend:要发送字节数; bytesSend: 实际发送字节数
在另外一个类中,用到该函数
char cmdBuf[6];
ret = sPort->send(cmdBuf,6,byteSend); //ret为bool型变量
if( (byteSend != 6) || (ret == false) )
{
TRACE("EDA9017::cmdGetConf,串口发送失败\n");
return false;
}
我想问的是,cmdBuf数组中,一共有6个字符(即,发送缓冲区最大有6个字节,或,要发送的字节数为6。为什么调用send函数时,要求实际发送字节数byteSend也必须为6?缓冲区最大字节数为6,但是我可以只保存了5个字节数据呀,为什么要求发送的一定是6个字节呢?
byteSend != 6会导致发送失败,这点我不明白~~
求高手指教,分数不够,希望不要介意 展开
2个回答
展开全部
char cmdBuf[116];
ret = sPort->send(cmdBuf,6,byteSend); //ret为bool型变量
if( (byteSend != 6) || (ret == false) )
假设一下,你实际有115个字节需要发送,那么这里你调用后也是只发送6个,这是send的第二个参数决定的,byteSend只是根据你的要求,报告了实际是否全部发送了而已,如果你send要求发送5个,那么byteSend也应该是5
ret = sPort->send(cmdBuf,6,byteSend); //ret为bool型变量
if( (byteSend != 6) || (ret == false) )
假设一下,你实际有115个字节需要发送,那么这里你调用后也是只发送6个,这是send的第二个参数决定的,byteSend只是根据你的要求,报告了实际是否全部发送了而已,如果你send要求发送5个,那么byteSend也应该是5
2013-03-25
展开全部
推荐看书
Visual C++_Turbo C串口通信编程实践
Visual C++_Turbo C串口通信编程实践
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询