【发布时间】:2012-08-22 15:14:33
【问题描述】:
我想将 Linux 发送到 Arduino 的数据回显,这是一个十六进制命令,因为我需要回显的数据供 PHP 读取。问题是我不想使用换行符来打印完整的数据。当 Arduino 没有更多数据可以读取时,我想打印它。代码如下:
我想要完成的事情:
- 如果没有
\n,如何发现读取序列的结尾 - 如何以所需格式打印十六进制。
Arduino 代码:
char printByte[100];
byte getByte;
int pos = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0){
getByte = Serial.read();
printByte[pos] = getByte;
pos++;
printByte[pos] = '\0';
if(getByte == '\n'){
Serial.print(printByte);
for(int i=0; i<=sizeof(printByte);i++){
printByte[i]=0;
}
pos = 0;
}
}
}
发送十六进制的Linux示例代码..
unsigned char pCom[2][7]={{0xFF,0x01,0x00,0x10,0x2F,0x2F,0x6F},
{0xFF,0x01,0x00,0x08,0x2F,0x2F,0x67}};
write(fd,pCom[0],8);
另外,我如何在 Arduino 代码中精简,比如 0x,所以它只会输出 FF 01 10 等?
【问题讨论】:
-
这里似乎有两个问题:(1)如果没有 \n,如何发现读取序列的结尾(2)如何以所需格式打印十六进制。我建议你把它分成两个单独的问题。
-
是的,这就是我想说的..我会去编辑它..谢谢..
-
明确一点 - 我的意思是把它编辑成一个问题,然后为第二个问题创建一个新页面。