Ich berechne Durchsatz von BLE-Modul mit Arduino Mega. Das Modul arbeitet mit 3.3V und ich habe Logic Level Shifter zwischen BLE und Arduino. BLE UART ist auf 115200 gesetzt und sendet Daten mit einer Geschwindigkeit von 64 Kbps (verifiziert mit CC2540 BLE Packet Sniffer). Pakete, die von BLE gesendet werden, haben das folgende Format: 400102030405060708090A0B0C0D0E0F1011121323 {40 = @, 23 = #}. Ich sende 100 Anzahl von Paketen. Hier ist die Zusammenfassung meines Codes. Code funktioniert gut für niedrigere Bitrate 32 Kbps, aber nicht für 64 Kb (BLE Verbindungsintervall zu 10ms). In dieser Bitrate wird kein Ergebnis angezeigt.Hohe Bitrate in Arduino Mega
void loop()
{
if(rxflag)
{
rxflag = false;
switch(rxState)
{
case get_first_header:
if(rxChar=='@')
{
startPoint=millis();
rxState=get_last_header;
}
break;
case get_last_header:
if(rxChar=='#')
{
packetNo++;
if(packetNo==100)
{
endPoint=millis();
totalTime= endPoint-startPoint;
Serial.print("Total Time of Packet=");
Serial.println(totalTime);
}
break;
}
}
}
void serialEvent1()
{
if (Serial1.available()>0)
{
rxChar = (char)Serial1.read();
rxflag = true;
}
}