3

我正在使用串行端口来控制一个名为 nano 控制器的设备。我用CreateFile,writeFilereadFile通信。

这是 , 的writeFile语法

if (!WriteFile(hComm, lpBuf, dwToWrite, &dwWritten, &osWrite)) {      
    if (GetLastError() != ERROR_IO_PENDING) {   
        // WriteFile failed, but isn't delayed. Report error and abort.
        fRes = FALSE;     
    }
}

这里的数据应该包含在lpBuf. 它是一个缓冲区。

我想分配 "MINC,moveL" 。这里MINC有文字。然而,moveL是变量,其类型应该是双精度。值应该moveL与时间一起传递。moveL变化范围为 0~10 000。

那么如何填充缓冲区呢?

4

2 回答 2

1

听起来您想要sprintf(或其表亲之一):

char buffer[128];

sprintf(buffer, "MINC,%f", moveL);
WriteFile(hComm, buffer, ...);
于 2012-05-11T02:30:11.360 回答
1

你可以sprintf(lpBuf, "MINC,%lf", moveL);用来创建字符串吗?

lpBuf在填充数据之前,请确保分配足够的内存。

于 2012-05-11T02:30:14.623 回答