PN532 NFC library for Seeed Studio's NFC Shield

Fork of PN532 by Yihui Xiong

Committer:
yihui
Date:
Thu Oct 17 06:37:26 2013 +0000
Revision:
1:b8cab5222fd0
Parent:
0:9c6b9280c0e1
Child:
3:4189a10038e6
format code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yihui 0:9c6b9280c0e1 1
yihui 0:9c6b9280c0e1 2 #ifndef __PN532_SPI_H__
yihui 0:9c6b9280c0e1 3 #define __PN532_SPI_H__
yihui 0:9c6b9280c0e1 4
yihui 0:9c6b9280c0e1 5 #include "mbed.h"
yihui 0:9c6b9280c0e1 6 #include "PN532Interface.h"
yihui 0:9c6b9280c0e1 7
yihui 1:b8cab5222fd0 8 class PN532_SPI : public PN532Interface
yihui 1:b8cab5222fd0 9 {
yihui 0:9c6b9280c0e1 10 public:
yihui 0:9c6b9280c0e1 11 PN532_SPI(SPI &spi, PinName ss);
yihui 1:b8cab5222fd0 12 PN532_SPI(SPI *spi, PinName ss);
yihui 1:b8cab5222fd0 13
yihui 0:9c6b9280c0e1 14 virtual void begin();
yihui 0:9c6b9280c0e1 15 virtual void wakeup();
yihui 0:9c6b9280c0e1 16 virtual int8_t writeCommand(const uint8_t buf[], uint8_t len);
yihui 0:9c6b9280c0e1 17 virtual int16_t readResponse(uint8_t buf[], uint8_t len, uint16_t timeout);
yihui 1:b8cab5222fd0 18
yihui 0:9c6b9280c0e1 19 private:
yihui 1:b8cab5222fd0 20 SPI *_spi;
yihui 0:9c6b9280c0e1 21 DigitalOut _ss;
yihui 0:9c6b9280c0e1 22 uint8_t command;
yihui 1:b8cab5222fd0 23
yihui 0:9c6b9280c0e1 24 bool isReady();
yihui 0:9c6b9280c0e1 25 void writeFrame(const uint8_t buf[], uint8_t len);
yihui 0:9c6b9280c0e1 26 int8_t readAckFrame();
yihui 1:b8cab5222fd0 27
yihui 1:b8cab5222fd0 28 inline void write(uint8_t data) {
yihui 1:b8cab5222fd0 29 REVERSE_BITS_ORDER(data);
yihui 1:b8cab5222fd0 30 _spi->write(data);
yihui 1:b8cab5222fd0 31 }
yihui 1:b8cab5222fd0 32 inline uint8_t read() {
yihui 1:b8cab5222fd0 33 uint8_t data = _spi->write(0);
yihui 1:b8cab5222fd0 34 REVERSE_BITS_ORDER(data);
yihui 1:b8cab5222fd0 35 return data;
yihui 1:b8cab5222fd0 36 }
yihui 0:9c6b9280c0e1 37 };
yihui 0:9c6b9280c0e1 38
yihui 0:9c6b9280c0e1 39 #endif