【发布时间】:2016-05-11 09:49:03
【问题描述】:
我希望您能帮助我理解一些对我的项目有很大帮助的代码。没有过多的细节,这就是导致我这么多问题的原因:
bool Serial::WriteData(char *buffer, unsigned int nbChar)
{
DWORD bytesSend;
//Try to write the buffer on the Serial port
if(!WriteFile(this->hSerial, (void *)buffer, nbChar, &bytesSend, 0))
{
//In case it don't work get comm error and return false
ClearCommError(this->hSerial, &this->errors, &this->status);
return false;
}
else
return true;
}
我使用这个函数通过串口向我的 Arduino Uno 发送一个变量,如下所示:
snprintf(Data, sizeof(Data) - 1, "%3.1f", (int)(pf->speedKmh)*1.0);
SP->WriteData(Data, sizeof(Data) - 1); printf("\nData\n");
一些有用的信息:
speedkmh 是一个浮点数
字符数据[8] = "";
所以我的问题是:我想知道确切发送到 Arduino 的是什么。目前我真的不知道它是否正在发送一个数组,一次一位,如果它发送一个浮点数等等......你能帮我理解这个吗?
谢谢!
【问题讨论】:
-
您的意思是使用 strlen(Data) 而不是 sizeof(Data)。现在,您正在发送垃圾字节,无论字符串终止符之外的内容。如果您需要了解实际发送的内容,请添加日志记录。尽管不太可能展示该错误,但串行端口间谍实用程序是更好的选择武器。
标签: arduino serial-port writefile