radio.setFrequency(receivedChars[32]);
That will never work; no idea what it will do though. Why do you use a different approach as to
tft.println(receivedChars);
??
Anyway, you need to convert the text to a float. See man atof and man strtod; the former does not do error checking, the latter does.
void loop()
{
float frequency;
recvWithEndMarker();
if (newData == true)
{
tft.fillScreen(BLUE);
tft.print("You are listening to");
tft.println(receivedChars);
frequency = atof(receivedChars);
radio.setFrequency(frequency);
newData = false;
}
}
I suggest that you use strtod (I'm a little lazy) and implement some error checking if it fails (tell the user that he's an idiot if he enters 'abc' instead of '123.45').
Note:
the above is based on the code in your reply #10.