Go Down

Topic: RS232 Program Not Printing Carriage Return in Serial Terminal or Minicom (Read 2108 times) previous topic - next topic

chiques

Hello Everyone,
I'm trying to figure out why my serial terminal is not printing new lines in this program.

My Arduino IDE serial terminal prints sequentially ignoring the <CR> implemented in print()

Code: [Select]

String inputstring = "";                                                       
String sensorstring = "";                                                     
boolean input_stringcomplete = false;                                         
boolean sensor_stringcomplete = false;                                         

  void setup(){                                                               
     Serial1.begin(38400);                                                     
     Serial3.begin(38400);                                                     
     inputstring.reserve(5);                                                   
     }

   void serialEvent() {                                                                     
               char inchar = (char)Serial1.read();                             
               inputstring += inchar;                                           
               if(inchar == '\r') {input_stringcomplete = true;}               
              } 

  void serialEvent3(){                                                         
              char inchar = (char)Serial3.read();                             
              sensorstring += inchar;                                         
              if(inchar == '\r') {sensor_stringcomplete = true;}               
             }

void loop(){                                                                   
     
  if (input_stringcomplete){                                                   
      Serial1.print(inputstring);                                             
      inputstring = "";                                                       
      input_stringcomplete = false;                                           
      }

if (sensor_stringcomplete){                                                   
      Serial3.print(sensorstring);                                             
      sensorstring = "";                                                       
      sensor_stringcomplete = false;                                           
      }
}




I was able to induce a new line being being generated in Minicom by using

Code: [Select]

Ctrl+A +a , (which is "adding a line feed")


Is there a way to do this in the code?


johncc


Hello Everyone,
I'm trying to figure out why my serial terminal is not printing new lines in this program.

My Arduino IDE serial terminal prints sequentially ignoring the <CR> implemented in print()

Code: [Select]

String inputstring = "";                                                       
String sensorstring = "";                                                     
boolean input_stringcomplete = false;                                         
boolean sensor_stringcomplete = false;                                         

  void setup(){                                                               
     Serial1.begin(38400);                                                     
     Serial3.begin(38400);                                                     
     inputstring.reserve(5);                                                   
     }

   void serialEvent() {                                                                     
               char inchar = (char)Serial1.read();                             
               inputstring += inchar;                                           
               if(inchar == '\r') {input_stringcomplete = true;}               
              } 

  void serialEvent3(){                                                         
              char inchar = (char)Serial3.read();                             
              sensorstring += inchar;                                         
              if(inchar == '\r') {sensor_stringcomplete = true;}               
             }

void loop(){                                                                   
     
  if (input_stringcomplete){                                                   
      Serial1.print(inputstring);                                             
      inputstring = "";                                                       
      input_stringcomplete = false;                                           
      }

if (sensor_stringcomplete){                                                   
      Serial3.print(sensorstring);                                             
      sensorstring = "";                                                       
      sensor_stringcomplete = false;                                           
      }
}




I was able to induce a new line being being generated in Minicom by using

Code: [Select]

Ctrl+A +a , (which is "adding a line feed")


Is there a way to do this in the code?




Try \n instead of \r.   If that doesn't work, try both  \n\r

Good luck!

billroy

The '\n' recommendation is a good one.

Alternatively: Does it help if you use Serial.println() instead of Serial.print()?

-br

chiques

Hello,
I tried both suggestions and it still continues to print horizontally on the terminal

Code: [Select]

String inputstring = "";                                                       
String sensorstring = "";                                                     
boolean input_stringcomplete = false;                                         
boolean sensor_stringcomplete = false;                                         

  void setup(){                                                               
     Serial1.begin(38400);                                                     
     Serial3.begin(38400);                                                     
     inputstring.reserve(5);                                                   
     }

   void serialEvent() {                                                                     
               char inchar = (char)Serial1.read();                             
               inputstring += inchar;                                           
               if(inchar == '\n\r') {input_stringcomplete = true;}               
              } 

  void serialEvent3(){                                                         
              char inchar = (char)Serial3.read();                             
              sensorstring += inchar;                                         
              if(inchar == '\n\r') {sensor_stringcomplete = true;}               
             }

void loop(){                                                                   
     
  if (input_stringcomplete){                                                   
      Serial1.println(inputstring);                                             
      inputstring = "";                                                       
      input_stringcomplete = false;                                           
      }

if (sensor_stringcomplete){                                                   
      Serial3.println(sensorstring);                                             
      sensorstring = "";                                                       
      sensor_stringcomplete = false;                                           
      }
}


I wonder if its my IDE settings.

PaulS

Code: [Select]
              if(inchar == '\n\r') {sensor_stringcomplete = true;}
This will never be true. '\n' is one character and '\r' is another character.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy