我正在从Arduino发送数据到串口:
byte xBeeFrame[23];
unsigned int windData,
signed int tempData;
xBeeFrame[0] = 0x7E;
xBeeFrame[18] = (windData >> 8) & 0xFF;
xBeeFrame[19] = windData & 0xFF;
xBeeFrame[20] = (tempData >> 8) & 0xFF;
xBeeFrame[21] = tempData & 0xFF;
问题是在C程序中解析这些数据 . 我是怎么做的?这是我如何阅读串口:
unsigned char bytes[254];
if (read(tty_fd,bytes,sizeof(bytes))>0){
///write(STDOUT_FILENO,bytes,sizeof(bytes)); // if new data is available on the serial port, print it out
感谢帮助!
1 回答
好的,我首先要做的是创建一个单独的头文件来声明用于在Arduino和PC之间进行通信的结构 . 所以在像
comms.h
这样的文件中然后在您的Arduino代码中,您需要
#include "comms.h"
然后按如下方式发送数据:在PC端你也会
#include "comms.h"
并读取同一帧:这不是万无一失的,因为丢失的字符会导致整个协议失控,但作为初始原型可能还行 . 除非您将结构直接传递给某个XBee设备,否则我不明白为什么您需要这样的分隔符 .