串口通信问题
代码如下:
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
if(len>=6) {M=len/6; M=M*6;}//?
for(k=0;k<M;k++)
{
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
bt=*(char*)(rxdata+k); //字符型
}
}
为什么要把VARIANT型变量转换为ColeSafeArray型变量?
VARIANT型变量和ColeSafeArray型变量有什么区别吗?
直接safearray_inp=m_ctrlComm.GetInput()不行吗?
得到有效数据长度指的是得到了多少个字节还是字符?
if(len>=6) {M=len/6; M=M*6;}这句干吗的?
for(k=0;k<M;k++)
{
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
bt=*(char*)(rxdata+k); //字符型
}
这段干吗的?
k是int型的,可以前面加&这个吗,什么意思?
问题比较多,比较基础,希望大家帮忙