2016-08-05 4 views
2

私はArduino MegaでGSMSHIELDライブラリを使用していますが、2つの異なるシステムで次のエラーが発生します。ArduinoクラスHWSerialに 'read'という名前のメンバーがありません

/Users/-----/Documents/Arduino/libraries/GSMSHIELD/SIM900.cpp:メンバ関数 'int SIMCOM900 :: configandwait(char *)': /Users/----- /ドキュメント/ Arduino /ライブラリ/ GSMSHIELD/SIM900.cpp:62:18:エラー: 'クラスHWSerial'のメンバーに 'read'という名前のメンバーがありません connCode = _cell.read();

私はGSM.hファイルを介して、このバックトレースすることができます:私は私の人生のために、なぜを把握することはできません

public: 
inline HardwareSerial(
    volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, 
    volatile uint8_t *ucsra, volatile uint8_t *ucsrb, 
    volatile uint8_t *ucsrc, volatile uint8_t *udr); 
void begin(unsigned long baud) { begin(baud, SERIAL_8N1); } 
void begin(unsigned long, uint8_t); 
void end(); 
virtual int available(void); 
virtual int peek(void); 
virtual int read(void); 
<snip> 

#include "HWSerial.h" 
... 

HWSerial _cell; 

とArduinoのHardwareSerial.hファイルこれは、Arduino開発システムのバージョン(1.6.9)の問題でない限りコンパイルされません。

ライブラリが作成されテストされたIDEのバージョンに関する情報はありません。

アイデア?

+0

別名「ボード」は、arduinoのカーネルとはまったく異なることがあります。たとえば、c_str()などの文字列はありません。このようなケースは、あなたの問題のようなイメージです。あなたが見て、おそらく作業セットにはありません。 –

+0

はい、わかりました。しかし、このライブラリは、UnifまたはMegaのいずれかのために作られており、#ifdefによって制御されているので、このボードで動作するはずです。それはUnoのために働くが、それはソフトウェアシリアルを使用する、私はメガのハードウェアシリアルを使用したい。だから私はそれがバージョンの問題かもしれないと思った... – Arana

+0

あなたはそれを動作させることができましたか? – CallMeLaNN

答えて

0

あなたはメガ代わり宇野ボードの使用するためにあなたが順番にdefineのコメントを解除するための2つの場所があります。あなたが#define MEGA

//#define MEGAからHWSerial.hの最初の行のコメントを外していることを確認します。それはGSM.hHWSerial.hです!

関連する問題