Re: [問題] Arduino藍牙快速傳值,造成數值錯亂
試著在你的Main受值程式碼裡面, 把 buffer 的 allocation 移到 loop 裡面
while (true) {
try {
byte[] buffer = new byte[1024]; ==> 從外面移進來
// Read from the InputStream
bytes = mmInStream.read(buffer);
....
雖然無法確定這是不是你這個問題的主因 (很有可能)
但原來的code可能有潛在的問題
因為你只有一份 buffer
當你收到第一筆資料, 透過 message 叫 UI thread 來處理同一個 buffer
而在同一個時間(可能還沒處理完), 有可能第二筆資料剛好來,
就會把 buffer 的內容覆蓋掉 (而 UI thread 可能還沒處理完舊的資料)
※ 引述《xezct1213 (xezct)》之銘言:
: 板上前輩大家好
: 使用Arduino延遲10ms為間距
: 透過藍牙傳值給手機
: 手機受值會出現數值錯亂的現象
: 例如:
: Arduino傳61.62.63.64
: 手機端顯示61.62.63.63.63.61
: 程式碼的部分是用BluetoothChat修改
: BluetoothChatService受值程式碼
: http://pastebin.com/hTjvskXr
: Main受值顯示程式碼
: http://pastebin.com/AsNqREnm
: ※給Arduino電壓是夠的
: 麻煩前輩解,感謝閱讀與回覆,謝謝您。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.80.67.18
※ 編輯: MetalChao 來自: 210.80.67.18 (03/08 14:03)
※ 編輯: MetalChao 來自: 210.80.67.18 (03/08 14:11)
推
03/08 23:27, , 1F
03/08 23:27, 1F
推
03/09 02:40, , 2F
03/09 02:40, 2F
→
03/09 02:40, , 3F
03/09 02:40, 3F
→
03/09 02:41, , 4F
03/09 02:41, 4F
→
03/09 02:41, , 5F
03/09 02:41, 5F
→
03/09 13:33, , 6F
03/09 13:33, 6F
→
03/09 13:34, , 7F
03/09 13:34, 7F
→
03/09 13:38, , 8F
03/09 13:38, 8F
→
03/09 13:39, , 9F
03/09 13:39, 9F
→
03/09 13:40, , 10F
03/09 13:40, 10F
→
03/09 13:40, , 11F
03/09 13:40, 11F
推
03/10 00:03, , 12F
03/10 00:03, 12F
推
03/11 18:58, , 13F
03/11 18:58, 13F
→
03/11 18:58, , 14F
03/11 18:58, 14F
→
03/11 19:10, , 15F
03/11 19:10, 15F
→
03/11 19:11, , 16F
03/11 19:11, 16F
→
03/11 19:11, , 17F
03/11 19:11, 17F
→
03/11 19:12, , 18F
03/11 19:12, 18F
→
03/11 19:12, , 19F
03/11 19:12, 19F
→
03/11 19:14, , 20F
03/11 19:14, 20F
→
03/11 19:31, , 21F
03/11 19:31, 21F
→
03/11 19:32, , 22F
03/11 19:32, 22F
→
03/11 19:33, , 23F
03/11 19:33, 23F
推
03/12 02:18, , 24F
03/12 02:18, 24F
→
03/12 02:18, , 25F
03/12 02:18, 25F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):