If that is the case, you may need to process one character (as was mentioned earlier) at a time and check for the ',' yourself, the strtok overhead may be too much.
Not likely.
The real issue seems to be that there is an expectation that all the serial data will arrive at once, and that is not happening. The sender should append some kind of end-of-record marker on the data, and received should not be set to true until that marker arrives.
I see nowhere where count is reset to 0, either, so the array where the floats are stored is going to be overrun the second time a record arrives.