Robofun 機器人論壇
標題:
buffer 程式碼問題
[打印本頁]
作者:
snoopy15
時間:
2011-10-27 01:06
標題:
buffer 程式碼問題
我想請問一下
這個程式碼在Monitor上的動作
在沒有接收到值時
一直在做接收動作(顯示為空白)
這樣的動作是否正常?
#define BUFFSIZ 18
char buffer[BUFFSIZ];
char buffidx;
char c;
void setup()
{
Serial.begin(9600);
}
void loop()
{
abc();
Serial.print(c);
}
void abc(void)
{
buffidx = 0;
if(Serial.available())
{
while (1)
{
c=Serial.read();
if (c == -1)
continue;
if (c == '\n')
continue;
if ((buffidx == BUFFSIZ-1) || (c == '\r'))
{
buffer[buffidx] = 0;
return;
}
buffer[buffidx++]= c;
}
}
}
複製代碼
作者:
coopermaa
時間:
2011-10-27 10:22
要看程式的目是什麼。
如果目的是一直收 Serial 的資料
那麼「沒有資料時 (Serial.read() == -1) 要讓程式一直等下去」這樣的邏輯也算是正常的。
作者:
snoopy15
時間:
2011-10-27 20:32
回復
2#
coopermaa
所以這現象算正常囉 這程式碼是想用來擷取XBee所接收到的資料
Ex: 123456/n456789/r
想要擷取123456和456789
是不是可以用這樣
for(int i = 0;i<=5;i++)
{
Serial.print(buffer[i]);
}
複製代碼
或者是有另種發法?
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2