PN532 Driver library This library provides an abstract API to drive the pn532 nfc chip, with I2C/HSU/SPI interface. Its based on the Seeed Studio's Arduino version.
Dependents: PN532_ReadUid Nfctest2
Diff: Wire.h
- Revision:
- 1:b5922b3b3257
- Parent:
- 0:db8030e71f55
--- a/Wire.h Tue Sep 13 06:01:19 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* - * TwoWire.h - * Copyright (c) 2011 Cristian Maglie <c.maglie@bug.st>. - * All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef TwoWire_h -#define TwoWire_h - -// Include Atmel CMSIS driver -//#include <include/twi.h> - -#include "Stream.h" -#include "variant.h" - -#define BUFFER_LENGTH 32 - -class TwoWire : public Stream { -public: - TwoWire(I2C_TypeDef *twi); - void begin(); - void begin(uint8_t); - void begin(int); - void beginTransmission(uint8_t); - void beginTransmission(int); - uint8_t endTransmission(void); - uint8_t endTransmission(uint8_t); - uint8_t requestFrom(uint8_t, uint8_t); - uint8_t requestFrom(uint8_t, uint8_t, uint8_t); - uint8_t requestFrom(int, int); - uint8_t requestFrom(int, int, int); - virtual size_t write(uint8_t); - virtual size_t write(const uint8_t *, size_t); - virtual int available(void); - virtual int read(void); - virtual int peek(void); - virtual void flush(void); - void onReceive(void(*)(int)); - void onRequest(void(*)(void)); - - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; - - void onService(void); - -private: - // RX Buffer - uint8_t rxBuffer[BUFFER_LENGTH]; - uint8_t rxBufferIndex; - uint8_t rxBufferLength; - - // TX Buffer - uint8_t txAddress; - uint8_t txBuffer[BUFFER_LENGTH]; - uint8_t txBufferLength; - - // Service buffer - uint8_t srvBuffer[BUFFER_LENGTH]; - uint8_t srvBufferIndex; - uint8_t srvBufferLength; - - // Callback user functions - void (*onRequestCallback)(void); - void (*onReceiveCallback)(int); - - // Called before initialization - void (*onBeginCallback)(void); - - // TWI instance - I2C_TypeDef *twi; - I2C_InitTypeDef I2C_InitStructure; - - // TWI state - enum TwoWireStatus { - UNINITIALIZED, - MASTER_IDLE, - MASTER_SEND, - MASTER_RECV, - SLAVE_IDLE, - SLAVE_RECV, - SLAVE_SEND - }; - TwoWireStatus status; - - // TWI clock frequency - static const uint32_t TWI_CLOCK = 100000; - - // Timeouts ( - static const uint32_t RECV_TIMEOUT = 100000; - static const uint32_t XMIT_TIMEOUT = 100000; -}; - -extern TwoWire Wire; -extern TwoWire Wire1; - - -#endif -