Arduino Uart 互傳字串 與 字串處理 依特定符號切割
兩台arduino要互傳
兩台arduino要互傳字串的話這裡寫一個範例
注意
- 兩台不要形成死循環,[A給B] [B再給A] [然後A再給B]…..
- 會新建一個uart通道,而不是使用預設的
通道請參考程式碼頂端的宣告
已經盡量用不會混淆的方式註解
要表達兩台人稱問題其實有些困難XD
要表達兩台人稱問題其實有些困難XD
缺少的函式庫在這裡可以下載
https://mega.nz/#F!dhlUBaYD!J74z_wKIqvY2lRbjP7l9pA
https://mega.nz/#F!dhlUBaYD!J74z_wKIqvY2lRbjP7l9pA
到這邊兩台都直接用同一個代碼燒錄上去即可,然後把兩台 Arduino 的 RXTX 也就是
A 的 2 接到 B 的 3
A 的 3 接到 B 的 2
A 的 2 接到 B 的 3
A 的 3 接到 B 的 2
然後打開兩個 Arduino IED ,選好 USBport 個別打開 右上角放大鏡(serial port terminal)
再來A發送訊息B的視窗就可以收到了
再來A發送訊息B的視窗就可以收到了
字串切割
字串切割的話這裡也有一個範例,可以自訂格式
比如說你想要船 0,1,2,3 你想把他們依照逗號存到陣列內
也可以依照其他符號,由你自己設定
比如說你想要船 0,1,2,3 你想把他們依照逗號存到陣列內
也可以依照其他符號,由你自己設定
裡面忘記放使用範例了
大致來說是這樣的
(第一個放字串,第二個放符號)
大致來說是這樣的
(第一個放字串,第二個放符號)
str_split(const char* str, const char* sp)
char str="1,2,3";
int *ptr=0; //注意星號
ptr=str_split(str,","); //逗號可以任意修改成你要的形式
println(ptr[0]); //返回為一個陣列的指標,可以直接使用下標[]呼叫
釋放記憶體
因為是動態陣列,結束時要釋放記憶體
(動態陣列意思就是回便你字串都常都可以適應)
(動態陣列意思就是回便你字串都常都可以適應)
free(ptr);
不過arduino是沒有結束點的,無限循環,
依照你的程式設計去選擇,這裡也不好舉例子說明
通常不放也不會造成問題,新手可以先暫時放置著
完成功能後再去想辦法解決這個問題。
依照你的程式設計去選擇,這裡也不好舉例子說明
通常不放也不會造成問題,新手可以先暫時放置著
完成功能後再去想辦法解決這個問題。