i try to program use the GSM shield Arduino with Arduino UNO i did it successfully but after that i try to use GPS shield but when i add the #include for the program i got the error
#include <GSM.h>
#include <TinyGPS.h>
#include <SoftwareSerial.h> // when i add that one i got the output eroor
// PIN Number for the SIM
#define PINNUMBER ""
i got this error out put
Arduino: 1.6.6 (Mac OS X), Board: "Arduino/Genuino Uno"
libraries/SoftwareSerial/SoftwareSerial.cpp.o: In function `__vector_3':
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp:227: multiple definition of `__vector_3'
libraries/GSM/GSM3SoftSerial.cpp.o:/Applications/Arduino.app/Contents/Java/libraries/GSM/src/GSM3SoftSerial.cpp:499: first defined here
libraries/SoftwareSerial/SoftwareSerial.cpp.o: In function `SoftwareSerial::read()':
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp:392: multiple definition of `__vector_4'
libraries/GSM/GSM3SoftSerial.cpp.o:/Applications/Arduino.app/Contents/Java/libraries/GSM/src/GSM3SoftSerial.cpp:487: first defined here
libraries/SoftwareSerial/SoftwareSerial.cpp.o: In function `SoftwareSerial::read()':
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp:392: multiple definition of `__vector_5'
libraries/GSM/GSM3SoftSerial.cpp.o:/Applications/Arduino.app/Contents/Java/libraries/GSM/src/GSM3SoftSerial.cpp:487: first defined here
collect2: error: ld returned 1 exit status
exit status 1
Error compiling.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
1 Answer 1
It appears the GSM library has its own conflicting copy of SoftwareSerial, and not necessarily a matching version unless you're lucky.
Not sure how well this would work but you can try removing the library reference to SoftwareSerial, and fiddle about to use the GSM library's SoftwareSerial.
-
1Indeed, if both peripherals are serially connected, the "only one instance" restriction of the software serial library may be a problem. Alternate libraries could be considered, but most likely an ATmega-based Arduino is not the best platform. A GSM module with integrated GSM could be another choice.Chris Stratton– Chris Stratton05/25/2016 23:30:20Commented May 25, 2016 at 23:30
-
True that; my solution almost definitely won't result in 2 separate serial streams, which are likely needed. This page may be of interest (alternate libraries) ernstc.dk/arduino/tinycom.htmlMalachi– Malachi05/26/2016 00:01:21Commented May 26, 2016 at 0:01
-
thanks , i used SerialGSM.h instead the GSM library i can receive message but when i send the message not send it :(Dana Sorani– Dana Sorani05/26/2016 07:10:42Commented May 26, 2016 at 7:10