Pages: [1]   Go Down
Author Topic: RS232 Program Not Printing Carriage Return in Serial Terminal or Minicom  (Read 1600 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 38
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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:
Ctrl+A +a , (which is "adding a line feed")

Is there a way to do this in the code?



* printing_sequencially_arduino_IDE.png (17.66 KB, 591x401 - viewed 17 times.)
Logged

Temple, Texas
Offline Offline
Sr. Member
****
Karma: 14
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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:
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!
Logged

0
Offline Offline
God Member
*****
Karma: 39
Posts: 988
Get Bitlash: http://bitlash.net
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The '\n' recommendation is a good one.

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

-br
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 38
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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.


* arduino_horizontal_scroll.png (16.45 KB, 591x401 - viewed 17 times.)
Logged

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 633
Posts: 50187
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: