I have a problem about receiving data with mega2560 and HC06.
I use android phone to send data.
I receive 29k byte data using 1 mins.
(I send 1000 byte and delay 2 sec.Arduino use 2 sec receiving data.)
If I delay less than 2 sec,the data won't be complete.
how can I improve speed?
Next,I will send 1M~4M byte to arduino and save data in SD card.
#include <SoftwareSerial.h>
#include <Wire.h>
#define MAX_BTCMDLEN 1000
SoftwareSerial BTSerial(10,11); // Arduino RX/TX
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
Serial.println("GO");
Serial.println();
}
void loop() {
char str[MAX_BTCMDLEN];
int insize, ii;
int tick=0;
byte cmd[MAX_BTCMDLEN];
int len = 0; // received command length
while ( tick<MAX_BTCMDLEN ) {
if ( (insize=(BTSerial.available()))>0 ){
for ( ii=0; ii<insize; ii++ ){
cmd[(len++)%MAX_BTCMDLEN]=char(BTSerial.read());
}
} else {
tick++;
}
}
if ( len ) {
if(len==MAX_BTCMDLEN){
BTSerial.write(":OK");
Serial.print("----------");
Serial.println(len);
Serial.println("");
}
else
BTSerial.write(":NO");
for(int i=0;i<len;i++)
cmd[i]=0;
}
len = 0;
}