현제 atmega128을 이용하여 공부중에 있는 학생인데요
하고있는것은 atmega128에 블루투스 모듈을 달고 휴대폰에 bluetoothchat 어플을 어느정도 고쳐서 atmega128의 온습도 센서의 온도값을 휴대폰으로 전송해주고, 휴대폰에서 버튼 클릭시 atmega에서 받아들여 몇가지 동작을 구현하는것을 하고있습니다.
휴대폰에서 atmega128로 데이터 전송후 원하는대로 작동은 하고있으나 문제점은atmega128에서 데이터값을 휴대폰으로 전송시 값이 재대로 들어오지를 않습니다.
atmega128 avrstudio 부분 소스의 일부입니다.
(TEMP_val이라는 변수에 온습도센서의 센서값이 들어가고 tp라는 변수의 값과 비교하여 값이 다르면 휴대폰으로 데이터 전송을 해주게됩니다)
void Tx_char(char d) { while(!(UCSR0A&0x20)); UDR0=d; }
void Tx_str(char *s) { while(*s)Tx_char(*s++); }
int main(void)
{
----- 중간생략-----
while(1) {
if(tp != TEMP_val)
{
sprintf(temp,"%2d",TEMP_val);
Tx_str(temp);
tp = TEMP_val;
}
}
휴대폰으로 들어오는 결과는

이렇게 나오고있습니다.. 두자리 숫자가 연속으로 들어와야하나 끊어져서 들어오고있는데요..
bluetoothchat어플쪽 MainActivity.java 부분에서의 핸들러부분 소스입니다.
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
----------중간생략------
case MESSAGE_WRITE:
----------중간생략------
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf, 0, msg.arg1);
mConversationArrayAdapter.add("현재온도 : " + readMessage);
break;
case MESSAGE_DEVICE_NAME:
----------중간생략------
case MESSAGE_TOAST:
----------중간생략------
}
}
};
BluetoothChatService.java 부분의 소스입니다.
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
public ConnectedThread(BluetoothSocket socket, String socketType) {
Log.d(TAG, "create ConnectedThread: " + socketType);
mmSocket = socket;
InputStream tmpIn = null;
OutputStream tmpOut = null;
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) {
Log.e(TAG, "temp sockets not created", e);
}
mmInStream = tmpIn;
mmOutStream = tmpOut;
}
public void run() {
Log.i(TAG, "BEGIN mConnectedThread");
byte[] buffer = new byte[1024];
int bytes;
while (true) {
try {
bytes = mmInStream.read(buffer);
mHandler.obtainMessage(MainActivity.MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
Log.e(TAG, "disconnected", e);
connectionLost();
BluetoothChatService.this.start();
break;
}
}
}
어플쪽에서 문제를 해결해야 할것같은데... 좀 많이 모르다보니 엄청 해매고있네요 ^^;
도움 부탁드리겠습니다..