AndroidスマートフォンとPICマイクロコントローラーの間で簡単なデータを転送しようとしています。このコードを使用して送信すると、すべてが機能します。
try {
mBluetoothOut.write(new byte[] {
StartByte, // Start byte
//(byte)(x1Distance & 0xFF), // x1 -> LSB
//(byte)((x1Distance >> 8) & 0xFF), // x1 -> MSB
(byte)(y1Distance & 0xFF), // y1 -> LSB
(byte)((y1Distance >> 8) & 0xFF), // y1 -> MSB
(pad1.isYNegative()) ? (byte)1 : (byte)0,
//(byte)(x2Distance & 0xFF), // x2 -> LSB
//(byte)((x2Distance >> 8) & 0xFF), // x2 -> MSB
(byte)(y2Distance & 0xFF), // y2 -> LSB
(byte)((y2Distance >> 8) & 0xFF), // y2 -> MSB
(pad2.isYNegative()) ? (byte)1 : (byte)0,
(byte)(servo1Angle & 0xFF), // servo 1 -> LSB
(byte)(servo2Angle & 0xFF) // servo 2 -> LSB
});
} catch (IOException e) {
e.printStackTrace();
}
問題は、Androidデバイスがデータを送信する速度が速すぎて、マイクロコントローラーが混乱することです。送信される各バイトの間に約2〜3ミリ秒の遅延を設定する方法はありますか?または、バイトごとに送信しpostExecute()
、ハンドラーなどでを使用する必要がありますか?
ありがとうございました