Seeed-Studio / PN532

NFC library using PN532 to read/write card and communicate with android
431 stars 176 forks source link

Call of overloaded 'write(int)' is ambiguous #99

Open kordeiro opened 4 years ago

kordeiro commented 4 years ago

I get the following error: (PN532_HSU\PN532_HSU.cpp:21:21: error: call of overloaded 'write(int)' is ambiguous) when trying to use the PN532_HSU lib.


#include <PN532_HSU.h>

PN532_HSU pn532_interface(Serial1);
PN532 nfc(pn532_interface);

void setup(void) {
  Serial.begin(115200);
  Serial.println("Hello!");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  }
  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);

  // configure board to read RFID tags
  nfc.SAMConfig();

  Serial.println("Waiting for an ISO14443A Card ...");
}

Am I doing something wrong?

I am using Platform IO, and an Arduino Due
Ariel-International commented 3 years ago

Solved! In library file PN5323_HSU.cpp one must specify data type every time an integer is used, pecause it could be a pointer, which is not. Example from line 16 on: ` void PN532_HSU::wakeup()

{

_serial->write(0x55);                      //_serial->write((byte)0x55);

_serial->write(0x55);                      //_serial->write((byte)0x55);

_serial->write(uint8_t(0x00));            //_serial->write((byte)0x00);

_serial->write(uint8_t(0x00));            //_serial->write((byte)0x00);

_serial->write(uint8_t(0x00));            //_serial->write((byte)0x00);

`

Line 52 is correct: _serial->write(uint8_t(PN532_PREAMBLE)); But line 60 again is not: _serial->write(PN532_HOSTTOPN532);

This error shows up only in some platforms, ie. SAMD. It's a different compiler with different requirements.

kordeiro commented 3 years ago

Thanks so much! I will give it a try this evening 👍