Go Down

Topic: RS232 Program Not Printing Carriage Return in Serial Terminal or Minicom (Read 1 time) 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