Clearing serial buffer solved

all that is so complicated and abit long winded, why cant it just be serial.clear, or if (serial.read = "clear" ) {
} serial.clear}
or something along them lines! omfg!

2 Likes

multimedia:
all that is so complicated and abit long winded, why cant it just be serial.clear, or if (serial.read = "clear" ) {
} serial.clear}
or something along them lines! omfg!

Because throwing away serial data without any regard for what is there is generally considered "stupid as f&%k" and the people who wrote the language weren't generally that stupid. If you're throwing away random amounts of data you should at least be looking for valid packet start markers while you do it. But really, if you find yourself just blasting through throwing much away then you probably have a seriously flawed program or protocol and you should really fix that first.

If you know what's in there then you can just read it out. Why should there be a second function to do the same thing?

To output to an lcd :)and then to enter more data you overload buffer therefore i need the serial buffer cleared b4 putting a new string in.

multimedia:
To output to an lcd :)and then to enter more data you overload buffer therefore i need the serial buffer cleared b4 putting a new string in.

That doesn't make any sense without context. Writing to the LCD and receiving serial have nothing to do with one another.

Its a project im working on dw about it. how can i clear it with a small command not a 10 mile long bit of bloated code, who can help without asking 20 questions as im in a poker tour right now!

multimedia:
Its a project im working on dw about it. how can i clear it with a small command not a 10 mile long bit of bloated code, who can help without asking 20 questions as im in a poker tour right now!

A while loop. Write the function you want. Fix your design so you don't have to. There's three options that don't require 10 miles of code.

Im a noob at c so all I see is long code and that's all i have to work with, please give me a really basic example, the serial buffer normally gets outputted to the lcd screen, but the lcd is 16, 1 and fills up and stops any more input and even puts in strange chars if i try to add more in so maybe i need to use the lcd.clear but then it might just fill with the serial buffer again and it wont achieve any clearing, so i think clearing the serial buffer aswell as lcd.clear will work a lot better but have no idea what the code to do that is.

multimedia:
Im a noob at c

Not me, I'm pretty damned good at this if I must say so.

multimedia:
please give me a really basic example,

After you called me a cunt earlier? I see you took it down, but I saw it. Maybe a sorry would help.

multimedia:
the serial buffer normally gets outputted to the lcd screen,

No, not normally. Normally the two have nothing to do with one another. Nothing gets sent to the lcd unless you send it there in your code. That's why I asked for context. Are you talking about a serial lcd? Are you talking about the send buffer or receive buffer?

multimedia:
but the lcd is 16, 1 and fills up and stops any more input and even puts in strange chars if i try to add more in

So don't send so much to the lcd. You have control over what you send from your code.

multimedia:
so maybe i need to use the lcd.clear but then it might just fill with the serial buffer again and it wont achieve any clearing, so i think clearing the serial buffer aswell as lcd.clear will work a lot better but have no idea what the code to do that is.

I have no idea what that code is either because I know practically zero about your project or which components you have or the code you are using. If you want help, then you'll have to be forthcoming about those details.

And don't call people ugly names.

i dam well just told you lcd 16,2 standard arduino kit screen thats it and esp 8266

There are many kinds of LCD. Which one do you have? How does the board communicate with it? Serial? I2C? SPI? Parallel?

I'm still not clear on the connection between the serial buffer and the LCD in your program. That's something else you should explain.

So we know you have some kind of LCD and an eap8266 and that's all you've given me. And I'm supposed to know what code you need to do some as yet unnamed thing just from that? Are you serious?

Or you can just keep being combative and get nowhere. I'm stuck at an airport so I honestly have nothing better to do. So I really don't care.

omfg, soooooooo many questions and they are dumb ones! its a standard means theres no model number no make nothing just google standard 16,2 arduino lcd kit and it dont matter they are all same except mine has i2c board again a standard thing look for the most common i have that, simples! h/w dont even matter its a software thing!

Hardware determines how you write the software.

Sorry, but all lcds are not the same. They really aren't. And there's no such thing as a "standard" one.

But that's not the really big question. The real question is about what the code is doing with this serial data and what's being put on the LCD.

I'm not being obtuse. I honestly don't know what it is that you're trying to do with this code. I can tell you I've never had a problem writing stuff to any LCD.

But hey, if you don't want to answer these things then don't. I can tell you that you won't get a solution that way but that's your prerogative.

Actually, come to think of it I'm pretty much done with this. You're combative, don't want to answer simple questions, and you called me an ugly name. So I'm out. Maybe if you post some details someone else will help you. But as for me I'm pretty much done with you. A slightly different tact on your end and you'd have working code by now. But you're just a waste of time I think. Good luck figuring it out.

no the ide compiles depending on options! just give me code and i will test :slight_smile: plz

Riva:
Would it be better to write a small function to clear the buffer instead of doing serial.end/serial.begin as this may fragment memory.

void serialFlush(){

while(Serial.available() > 0) {
    char t = Serial.read();
  }
}

Hi, Can you please explain how will this line of code empty the serial buffer?

void serialFlush(){

  • while(Serial.available() > 0) { //while there are characters in the serial buffer, because Serial.available is >0*
  • char t = Serial.read(); // get one character*
  • }*
    *} *

I basically made an lcd display that uses a file / path requests from a form all to save having to use sd card for displaying things but want to be able to rewrite it and the program know if new input detected if yes then change sort of thing but im novice and not got a clue the best way to do this, it sort of works but not stangle due to after a long while it clears itself anyone help?

What's your native language OP?

irrelevent stick to the topic!

multimedia:
irrelevent stick to the topic!

Relevant, beccause you aren't making much sense when you type and I thought if you are not a native English speaker I would help you find the forum where they speak your language.

If English is your native language then please take a little more care when you type to make something that is readable by others. Incude maybe some punctuation or something. You're asking a bunch of professionals for help, you're not typing a text message to your boyfriend. Try to look at least mildly intelligent if you want anything other than the dregs to try to help you.

2 Likes