Pages: [1]   Go Down
Author Topic: SoftwareSerial example not working as expected?  (Read 774 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 50
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

EDIT: I'm using a arduino Uno SMD version

Hi all,

If i use the sofwareserial example which comes with the arduino distribution (1.0.1 on windows 7, softwareserial version ?? ) the output is not as expected.

Code:
/*
  Software serial multple serial test
 
 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.
 
 The circuit:
 * RX is digital pin 2 (connect to TX of other device)
 * TX is digital pin 3 (connect to RX of other device)
 
 created back in the mists of time
 modified 9 Apr 2012
 by Tom Igoe
 based on Mikal Hart's example
 
 This example code is in the public domain.
 
 */
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup()  
{
 // Open serial communications and wait for port to open:
  Serial.begin(57600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  
  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

if i input 1 2 3 4 5 6 7 8 9 (seperated) i get this response:

þþÿÿÿÿþþþ

if i change

Code:
Serial.write(mySerial.read());

to

Code:
Serial.print(mySerial.read());

the output becomes:

ÿÿÿÿÿÿÿÿÿ

which looks like a timing issue to me...

Anyone experience with this possible bug?
« Last Edit: October 11, 2012, 03:56:41 am by dieselboris » Logged

Gosport, UK
Offline Offline
Faraday Member
**
Karma: 21
Posts: 3113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What 'other device' are you connecting to?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 50
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a GPRS modem on a breakoutboard from linksprite:

http://www.linksprite.com/product/showproduct.php?id=187&lang=en

Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 302
Posts: 26248
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
if i change

Code:

Serial.write(mySerial.read());


to

Code:

Serial.write(mySerial.read());

I'm not sure I see the difference.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 50
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not sure I see the difference.

Excuse me, typo. See my edit!
Logged

Global Moderator
Offline Offline
Brattain Member
*****
Karma: 481
Posts: 18740
Lua rocks!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
SoftwareSerial mySerial(2, 3); // RX, TX

The Leonardo does not seem to support pin change interrupts on those pins, hence software serial won't work on them.

http://arduino.cc/en/Hacking/PinMapping32u4
Logged


Global Moderator
Offline Offline
Brattain Member
*****
Karma: 481
Posts: 18740
Lua rocks!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In addition to that, I'm not certain that SoftwareSerial has been rewritten to take into account the mappings for the Leonardo. It may have been, it may not.
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 50
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In addition to that, I'm not certain that SoftwareSerial has been rewritten to take into account the mappings for the Leonardo. It may have been, it may not.

Forgot to mention, but i'm on a arduino Uno SMD.
Logged

Gosport, UK
Offline Offline
Faraday Member
**
Karma: 21
Posts: 3113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is your modem configured to repeat whatever it gets sent? If not, what would you expect it to reply when you send it '1 2 3 4 5 6 7 8 9'?
Logged

Pages: [1]   Go Up
Jump to: