Robofun 機器人論壇
標題:
關於parseInt() 使用
[打印本頁]
作者:
bnm890bnm
時間:
2016-10-3 18:15
標題:
關於parseInt() 使用
目前使用Mega & UNO 兩個使用TX RX 傳送數據發現使用parseInt()函式後
讀取 傳送都
比read()
慢很多
不用READ是因為不熟ASCII轉INT
請問有人知道還有什麼方法讀取INT?
作者:
超新手
時間:
2016-10-4 09:15
是慢一點, 不過應該是沒差太多才是
應該會遠小於 0.1秒吧
如果要快一點, 就直接送 binary
傳送端
int i = -1234;
Serial.write(i);
Serial.write(i>>8);
接收端
int i = 0, j=0;
unsigned char Buf[2];
void loop() {
if(Serial.available()) {
Buf[i] = Serial.read();
if(++i >= 2) {
j = *((int *)&Buf[0]);
}
}
不過重點要自己做對齊的動作
作者:
bnm890bnm
時間:
2016-10-4 13:26
回復
2#
超新手
是慢很多!!因為我用無延遲去看serial 視窗
int就是慢好幾倍
目前自己想到的解法是
Serial2.write(a);
for(int z=0;z<3;z++){
while (!Serial2.available()){}
n=Serial2.read();
Serial2.flush();
n=n-48;
y
=n;
i++;
if(i>2) i=0;
}
x=y[0]*100+y[1]*10+y[2];
這樣目前使用上還算能接受XD
因為只會收到0~3位數 這樣應該可以解
作者:
超新手
時間:
2016-10-4 14:01
本帖最後由 超新手 於 2016-10-7 11:25 編輯
我很好奇, 你這樣寫....
可以驗證(Build)成功嗎?
我知道了
原來是這個論壇的問題
只要打 [ i ], 都會不見 程式應該是
y[i]=n;
複製代碼
你可以自己看看自己貼的程式, 其實是有問題的
作者:
bnm890bnm
時間:
2016-10-4 16:43
本帖最後由 bnm890bnm 於 2016-10-4 16:45 編輯
回復
4#
超新手
我是用副程式int group_num(char a){
Serial2.write(a);
i=0;
for(int z=0;z<3;z++){
while (!Serial2.available()){}
n=Serial2.read();
Serial2.flush();
n=n-48;
y
=n;
i++;
if(i>2) i=0;
}
x=y[0]*100+y[1]*10+y[2];
}
這樣是驗證能過!!
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2