Firmware library for the X-NUCLEO-NFC01A1 Dynamic NFC Tag board.

Dependencies:   M24SR

Dependents:   NFC M2M_2016_STM32 MyongjiElec_capstone1 IDW01M1_Cloud_IBM ... more

Fork of X_NUCLEO_NFC01A1 by ST Expansion SW Team

X-NUCLEO-NFC01A1 Dynamic NFC Tag Expansion Board Firmware Package

Introduction

This firmware package includes Components Device Drivers, Board Support Package and example applications for STMicroelectronics X-NUCLEO-NFC01A1 Dynamic NFC Tag Expansion Board based on M24SR.

Firmware Library

Class X_NUCLEO_NFC01A1 is intended to represent the Dynamic NFC Tag Expansion Board with the same name.
It provides an API to access to the M24SR component and to the three onboard LEDs.
It is intentionally implemented as a singleton because only one X_NUCLEO_NFC01A1 at a time might be deployed in a HW component stack.
The library also provides an implementation of the NDEF library API for M24SR, providing an simple way to read/write NDEF formatted messages from/to the M24SR dynamic NFC tag.

Example applications

1. Hello World
2. Asynchronous Hello World

Committer:
giovannivisentini
Date:
Fri Jan 22 09:04:51 2016 +0000
Revision:
18:10def2fefa8a
Parent:
15:67e136b6921d
Child:
19:0b65a5813059
remove unused code and register the exeption only when needed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
giovannivisentini 0:969a2be49f41 1 /**
giovannivisentini 0:969a2be49f41 2 ******************************************************************************
giovannivisentini 0:969a2be49f41 3 * @file m24sr.h
giovannivisentini 0:969a2be49f41 4 * @author MMY Application Team
giovannivisentini 0:969a2be49f41 5 * @version V1.2.0
giovannivisentini 0:969a2be49f41 6 * @date 20-October-2014
giovannivisentini 0:969a2be49f41 7 * @brief This file provides a set of functions needed to manage M24SR
giovannivisentini 0:969a2be49f41 8 ******************************************************************************
giovannivisentini 0:969a2be49f41 9 * @attention
giovannivisentini 0:969a2be49f41 10 *
giovannivisentini 0:969a2be49f41 11 * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
giovannivisentini 0:969a2be49f41 12 *
giovannivisentini 0:969a2be49f41 13 * Licensed under MMY-ST Liberty SW License Agreement V2, (the "License");
giovannivisentini 0:969a2be49f41 14 * You may not use this file except in compliance with the License.
giovannivisentini 0:969a2be49f41 15 * You may obtain a copy of the License at:
giovannivisentini 0:969a2be49f41 16 *
giovannivisentini 0:969a2be49f41 17 * http://www.st.com/software_license_agreement_liberty_v2
giovannivisentini 0:969a2be49f41 18 *
giovannivisentini 0:969a2be49f41 19 * Unless required by applicable law or agreed to in writing, software
giovannivisentini 0:969a2be49f41 20 * distributed under the License is distributed on an "AS IS" BASIS,
giovannivisentini 0:969a2be49f41 21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
giovannivisentini 0:969a2be49f41 22 * See the License for the specific language governing permissions and
giovannivisentini 0:969a2be49f41 23 * limitations under the License.
giovannivisentini 0:969a2be49f41 24 *
giovannivisentini 0:969a2be49f41 25 ******************************************************************************
giovannivisentini 0:969a2be49f41 26 */
giovannivisentini 0:969a2be49f41 27
giovannivisentini 0:969a2be49f41 28 /* Define to prevent recursive inclusion -------------------------------------*/
giovannivisentini 0:969a2be49f41 29 #ifndef __DRV_M24SR_H
giovannivisentini 0:969a2be49f41 30 #define __DRV_M24SR_H
giovannivisentini 0:969a2be49f41 31
giovannivisentini 0:969a2be49f41 32 #ifdef __cplusplus
giovannivisentini 0:969a2be49f41 33 extern "C" {
giovannivisentini 0:969a2be49f41 34 #endif
giovannivisentini 0:969a2be49f41 35
giovannivisentini 0:969a2be49f41 36 /* Includes ------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 37 #include "Common/nfc.h"
giovannivisentini 0:969a2be49f41 38
giovannivisentini 0:969a2be49f41 39 /** @addtogroup M24SR_Driver
giovannivisentini 0:969a2be49f41 40 * @{
giovannivisentini 0:969a2be49f41 41 */
giovannivisentini 0:969a2be49f41 42
giovannivisentini 0:969a2be49f41 43 /** @addtogroup drv_M24SR
giovannivisentini 0:969a2be49f41 44 * @{
giovannivisentini 0:969a2be49f41 45 */
giovannivisentini 0:969a2be49f41 46
giovannivisentini 0:969a2be49f41 47 /* Exported types ------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 48
giovannivisentini 0:969a2be49f41 49 /**
giovannivisentini 0:969a2be49f41 50 * @brief APDU-Header command structure
giovannivisentini 0:969a2be49f41 51 */
giovannivisentini 0:969a2be49f41 52 typedef struct {
giovannivisentini 0:969a2be49f41 53 uint8_t CLA; /* Command class */
giovannivisentini 0:969a2be49f41 54 uint8_t INS; /* Operation code */
giovannivisentini 0:969a2be49f41 55 uint8_t P1; /* Selection Mode */
giovannivisentini 0:969a2be49f41 56 uint8_t P2; /* Selection Option */
giovannivisentini 0:969a2be49f41 57 } C_APDU_Header;
giovannivisentini 0:969a2be49f41 58
giovannivisentini 0:969a2be49f41 59 /**
giovannivisentini 0:969a2be49f41 60 * @brief APDU-Body command structure
giovannivisentini 0:969a2be49f41 61 */
giovannivisentini 0:969a2be49f41 62 typedef struct {
giovannivisentini 0:969a2be49f41 63 uint8_t LC; /* Data field length */
giovannivisentini 0:969a2be49f41 64 const uint8_t *pData; /* Command parameters */
giovannivisentini 0:969a2be49f41 65 uint8_t LE; /* Expected length of data to be returned */
giovannivisentini 0:969a2be49f41 66 } C_APDU_Body;
giovannivisentini 0:969a2be49f41 67
giovannivisentini 0:969a2be49f41 68 /**
giovannivisentini 0:969a2be49f41 69 * @brief APDU Command structure
giovannivisentini 0:969a2be49f41 70 */
giovannivisentini 0:969a2be49f41 71 typedef struct {
giovannivisentini 0:969a2be49f41 72 C_APDU_Header Header;
giovannivisentini 0:969a2be49f41 73 C_APDU_Body Body;
giovannivisentini 0:969a2be49f41 74 } C_APDU;
giovannivisentini 0:969a2be49f41 75
giovannivisentini 0:969a2be49f41 76 /**
giovannivisentini 0:969a2be49f41 77 * @brief SC response structure
giovannivisentini 0:969a2be49f41 78 */
giovannivisentini 0:969a2be49f41 79 typedef struct {
giovannivisentini 0:969a2be49f41 80 uint8_t *pData; /* Data returned from the card */ // pointer on the transceiver buffer = ReaderRecBuf[CR95HF_DATA_OFFSET ];
giovannivisentini 0:969a2be49f41 81 uint8_t SW1; /* Command Processing status */
giovannivisentini 0:969a2be49f41 82 uint8_t SW2; /* Command Processing qualification */
giovannivisentini 0:969a2be49f41 83 } R_APDU;
giovannivisentini 0:969a2be49f41 84
giovannivisentini 0:969a2be49f41 85 /**
giovannivisentini 0:969a2be49f41 86 * @brief GPO mode structure
giovannivisentini 0:969a2be49f41 87 */
giovannivisentini 0:969a2be49f41 88 typedef enum {
giovannivisentini 0:969a2be49f41 89 RF_GPO = 0, I2C_GPO = 1
giovannivisentini 0:969a2be49f41 90 } M24SR_GPO_MODE;
giovannivisentini 0:969a2be49f41 91
giovannivisentini 0:969a2be49f41 92 /**
giovannivisentini 0:969a2be49f41 93 * @brief GPO state structure
giovannivisentini 0:969a2be49f41 94 */
giovannivisentini 0:969a2be49f41 95 typedef enum {
giovannivisentini 0:969a2be49f41 96 HIGH_IMPEDANCE = 0,
giovannivisentini 0:969a2be49f41 97 SESSION_OPENED,
giovannivisentini 0:969a2be49f41 98 WIP,
giovannivisentini 0:969a2be49f41 99 I2C_ANSWER_READY,
giovannivisentini 0:969a2be49f41 100 INTERRUPT,
giovannivisentini 0:969a2be49f41 101 STATE_CONTROL
giovannivisentini 0:969a2be49f41 102 } M24SR_GPO_MGMT;
giovannivisentini 0:969a2be49f41 103
giovannivisentini 0:969a2be49f41 104 typedef enum {
giovannivisentini 0:969a2be49f41 105 M24SR_WAITINGTIME_POLLING,
giovannivisentini 0:969a2be49f41 106 M24SR_INTERRUPT_GPO
giovannivisentini 0:969a2be49f41 107 } M24SR_WAITINGTIME_MGMT;
giovannivisentini 0:969a2be49f41 108
giovannivisentini 0:969a2be49f41 109 /* Exported constants --------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 110
giovannivisentini 0:969a2be49f41 111 /** @defgroup lib_M24SR_Exported_Constants
giovannivisentini 0:969a2be49f41 112 * @{
giovannivisentini 0:969a2be49f41 113 */
giovannivisentini 0:969a2be49f41 114
giovannivisentini 0:969a2be49f41 115 /* ---------------------- status code ----------------------------------------*/
giovannivisentini 0:969a2be49f41 116 #define UB_STATUS_OFFSET 4
giovannivisentini 0:969a2be49f41 117 #define LB_STATUS_OFFSET 3
giovannivisentini 0:969a2be49f41 118 #define I_AM_M24SR ((uint8_t)0xB4)
giovannivisentini 0:969a2be49f41 119 #define I_AM_M24SR_AUTOMOTIVE ((uint8_t)0xBC)
giovannivisentini 0:969a2be49f41 120
giovannivisentini 0:969a2be49f41 121 #define M24SR_NBBYTE_INVALID 0xFFFE
giovannivisentini 0:969a2be49f41 122
giovannivisentini 0:969a2be49f41 123 /** @defgroup drv_M24SR_File_Identifier
giovannivisentini 0:969a2be49f41 124 * @{
giovannivisentini 0:969a2be49f41 125 */
giovannivisentini 0:969a2be49f41 126 #define SYSTEM_FILE_ID_BYTES {0xE1,0x01}
giovannivisentini 0:969a2be49f41 127 #define CC_FILE_ID_BYTES {0xE1,0x03}
giovannivisentini 0:969a2be49f41 128 #define NDEF_FILE_ID 0x0001
giovannivisentini 0:969a2be49f41 129 /**
giovannivisentini 0:969a2be49f41 130 * @}
giovannivisentini 0:969a2be49f41 131 */
giovannivisentini 0:969a2be49f41 132
giovannivisentini 0:969a2be49f41 133 /** @defgroup drv_M24SR_Password_Management
giovannivisentini 0:969a2be49f41 134 * @{
giovannivisentini 0:969a2be49f41 135 */
giovannivisentini 0:969a2be49f41 136 #define READ_PWD 0x0001
giovannivisentini 0:969a2be49f41 137 #define WRITE_PWD 0x0002
giovannivisentini 0:969a2be49f41 138 #define I2C_PWD 0x0003
giovannivisentini 0:969a2be49f41 139
giovannivisentini 0:969a2be49f41 140 /*-------------------------- Verify command answer ----------------------------*/
giovannivisentini 0:969a2be49f41 141 /**
giovannivisentini 0:969a2be49f41 142 * @}
giovannivisentini 0:969a2be49f41 143 */
giovannivisentini 0:969a2be49f41 144
giovannivisentini 0:969a2be49f41 145 /** @defgroup drv_M24SR_Command_Management
giovannivisentini 0:969a2be49f41 146 * @{
giovannivisentini 0:969a2be49f41 147 */
giovannivisentini 0:969a2be49f41 148
giovannivisentini 0:969a2be49f41 149 /* special M24SR command ----------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 150 #define M24SR_OPENSESSION_COMMAND {0x26}
giovannivisentini 0:969a2be49f41 151 #define M24SR_KILLSESSION_COMMAND {0x52}
giovannivisentini 0:969a2be49f41 152
giovannivisentini 0:969a2be49f41 153 /* APDU Command: class list -------------------------------------------*/
giovannivisentini 0:969a2be49f41 154 #define C_APDU_CLA_DEFAULT 0x00
giovannivisentini 0:969a2be49f41 155 #define C_APDU_CLA_ST 0xA2
giovannivisentini 0:969a2be49f41 156
giovannivisentini 0:969a2be49f41 157 /*------------------------ Data Area Management Commands ---------------------*/
giovannivisentini 0:969a2be49f41 158 #define C_APDU_SELECT_FILE 0xA4
giovannivisentini 0:969a2be49f41 159 #define C_APDU_GET_RESPONCE 0xC0
giovannivisentini 0:969a2be49f41 160 #define C_APDU_STATUS 0xF2
giovannivisentini 0:969a2be49f41 161 #define C_APDU_UPDATE_BINARY 0xD6
giovannivisentini 0:969a2be49f41 162 #define C_APDU_READ_BINARY 0xB0
giovannivisentini 0:969a2be49f41 163 #define C_APDU_WRITE_BINARY 0xD0
giovannivisentini 0:969a2be49f41 164 #define C_APDU_UPDATE_RECORD 0xDC
giovannivisentini 0:969a2be49f41 165 #define C_APDU_READ_RECORD 0xB2
giovannivisentini 0:969a2be49f41 166
giovannivisentini 0:969a2be49f41 167 /*-------------------------- Safety Management Commands ----------------------*/
giovannivisentini 0:969a2be49f41 168 #define C_APDU_VERIFY 0x20
giovannivisentini 0:969a2be49f41 169 #define C_APDU_CHANGE 0x24
giovannivisentini 0:969a2be49f41 170 #define C_APDU_DISABLE 0x26
giovannivisentini 0:969a2be49f41 171 #define C_APDU_ENABLE 0x28
giovannivisentini 0:969a2be49f41 172
giovannivisentini 0:969a2be49f41 173 /*-------------------------- Gpio Management Commands ------------------------*/
giovannivisentini 0:969a2be49f41 174 #define C_APDU_INTERRUPT 0xD6
giovannivisentini 0:969a2be49f41 175
giovannivisentini 0:969a2be49f41 176 /* Length ----------------------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 177 #define M24SR_STATUS_NBBYTE 2
giovannivisentini 0:969a2be49f41 178 #define M24SR_CRC_NBBYTE 2
giovannivisentini 0:969a2be49f41 179 #define M24SR_STATUSRESPONSE_NBBYTE 5
giovannivisentini 0:969a2be49f41 180 #define M24SR_DESELECTREQUEST_COMMAND {0xC2,0xE0,0xB4}
giovannivisentini 0:969a2be49f41 181 #define M24SR_DESELECTRESPONSE_NBBYTE 3
giovannivisentini 0:969a2be49f41 182 #define M24SR_WATINGTIMEEXTRESPONSE_NBBYTE 4
giovannivisentini 0:969a2be49f41 183 #define M24SR_PASSWORD_NBBYTE 0x10
giovannivisentini 0:969a2be49f41 184 #define M24SR_SELECTAPPLICATION_COMMAND {0xD2,0x76,0x00,0x00,0x85,0x01,0x01}
giovannivisentini 0:969a2be49f41 185 /* Command structure ------------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 186 #define M24SR_CMDSTRUCT_SELECTAPPLICATION 0x01FF
giovannivisentini 0:969a2be49f41 187 #define M24SR_CMDSTRUCT_SELECTCCFILE 0x017F
giovannivisentini 0:969a2be49f41 188 #define M24SR_CMDSTRUCT_SELECTNDEFFILE 0x017F
giovannivisentini 0:969a2be49f41 189 #define M24SR_CMDSTRUCT_READBINARY 0x019F
giovannivisentini 0:969a2be49f41 190 #define M24SR_CMDSTRUCT_UPDATEBINARY 0x017F
giovannivisentini 0:969a2be49f41 191 #define M24SR_CMDSTRUCT_VERIFYBINARYWOPWD 0x013F
giovannivisentini 0:969a2be49f41 192 #define M24SR_CMDSTRUCT_VERIFYBINARYWITHPWD 0x017F
giovannivisentini 0:969a2be49f41 193 #define M24SR_CMDSTRUCT_CHANGEREFDATA 0x017F
giovannivisentini 0:969a2be49f41 194 #define M24SR_CMDSTRUCT_ENABLEVERIFREQ 0x011F
giovannivisentini 0:969a2be49f41 195 #define M24SR_CMDSTRUCT_DISABLEVERIFREQ 0x011F
giovannivisentini 0:969a2be49f41 196 #define M24SR_CMDSTRUCT_SENDINTERRUPT 0x013F
giovannivisentini 0:969a2be49f41 197 #define M24SR_CMDSTRUCT_GPOSTATE 0x017F
giovannivisentini 0:969a2be49f41 198
giovannivisentini 0:969a2be49f41 199 /* Command structure Mask -------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 200 #define M24SR_PCB_NEEDED 0x0001 /* PCB byte present or not */
giovannivisentini 0:969a2be49f41 201 #define M24SR_CLA_NEEDED 0x0002 /* CLA byte present or not */
giovannivisentini 0:969a2be49f41 202 #define M24SR_INS_NEEDED 0x0004 /* Operation code present or not*/
giovannivisentini 0:969a2be49f41 203 #define M24SR_P1_NEEDED 0x0008 /* Selection Mode present or not*/
giovannivisentini 0:969a2be49f41 204 #define M24SR_P2_NEEDED 0x0010 /* Selection Option present or not*/
giovannivisentini 0:969a2be49f41 205 #define M24SR_LC_NEEDED 0x0020 /* Data field length byte present or not */
giovannivisentini 0:969a2be49f41 206 #define M24SR_DATA_NEEDED 0x0040 /* Data present or not */
giovannivisentini 0:969a2be49f41 207 #define M24SR_LE_NEEDED 0x0080 /* Expected length present or not */
giovannivisentini 0:969a2be49f41 208 #define M24SR_CRC_NEEDED 0x0100 /* 2 CRC bytes present or not */
giovannivisentini 0:969a2be49f41 209
giovannivisentini 0:969a2be49f41 210 #define M24SR_DID_NEEDED 0x08 /* DID byte present or not */
giovannivisentini 0:969a2be49f41 211
giovannivisentini 0:969a2be49f41 212 /**
giovannivisentini 0:969a2be49f41 213 * @}
giovannivisentini 0:969a2be49f41 214 */
giovannivisentini 0:969a2be49f41 215
giovannivisentini 0:969a2be49f41 216 /* Offset ----------------------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 217 #define M24SR_OFFSET_PCB 0
giovannivisentini 0:969a2be49f41 218 #define M24SR_OFFSET_CLASS 1
giovannivisentini 0:969a2be49f41 219 #define M24SR_OFFSET_INS 2
giovannivisentini 0:969a2be49f41 220 #define M24SR_OFFSET_P1 3
giovannivisentini 0:969a2be49f41 221
giovannivisentini 0:969a2be49f41 222 /* mask ------------------------------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 223 #define M24SR_MASK_BLOCK 0xC0
giovannivisentini 0:969a2be49f41 224 #define M24SR_MASK_IBLOCK 0x00
giovannivisentini 0:969a2be49f41 225 #define M24SR_MASK_RBLOCK 0x80
giovannivisentini 0:969a2be49f41 226 #define M24SR_MASK_SBLOCK 0xC0
giovannivisentini 0:969a2be49f41 227
giovannivisentini 0:969a2be49f41 228 /**
giovannivisentini 0:969a2be49f41 229 * @}
giovannivisentini 0:969a2be49f41 230 */
giovannivisentini 0:969a2be49f41 231
giovannivisentini 0:969a2be49f41 232 /**
giovannivisentini 0:969a2be49f41 233 * @}
giovannivisentini 0:969a2be49f41 234 */
giovannivisentini 0:969a2be49f41 235
giovannivisentini 0:969a2be49f41 236 /* Exported macro ------------------------------------------------------------*/
giovannivisentini 0:969a2be49f41 237
giovannivisentini 0:969a2be49f41 238 /** @brief Get Most Significant Byte
giovannivisentini 0:969a2be49f41 239 * @param val: number where MSB must be extracted
giovannivisentini 0:969a2be49f41 240 * @retval MSB
giovannivisentini 0:969a2be49f41 241 */
giovannivisentini 0:969a2be49f41 242 #define GETMSB(val) ( (uint8_t) ((val & 0xFF00 )>>8) )
giovannivisentini 0:969a2be49f41 243
giovannivisentini 0:969a2be49f41 244 /** @brief Get Least Significant Byte
giovannivisentini 0:969a2be49f41 245 * @param val: number where LSB must be extracted
giovannivisentini 0:969a2be49f41 246 * @retval LSB
giovannivisentini 0:969a2be49f41 247 */
giovannivisentini 0:969a2be49f41 248 #define GETLSB(val) ( (uint8_t) (val & 0x00FF ))
giovannivisentini 0:969a2be49f41 249
giovannivisentini 0:969a2be49f41 250 /** @brief Used to toggle the block number by adding 0 or 1 to default block number value
giovannivisentini 0:969a2be49f41 251 * @param val: number to know if incrementation is needed
giovannivisentini 0:969a2be49f41 252 * @retval 0 or 1 if incrementation needed
giovannivisentini 0:969a2be49f41 253 */
giovannivisentini 0:969a2be49f41 254 #define TOGGLE(val) ((val != 0x00)? 0x00 : 0x01)
giovannivisentini 0:969a2be49f41 255
giovannivisentini 0:969a2be49f41 256 typedef struct {
giovannivisentini 0:969a2be49f41 257 C_APDU command;
giovannivisentini 0:969a2be49f41 258 //static R_APDU Response;
giovannivisentini 0:969a2be49f41 259 uint8_t dataBuffer[0xFF];
giovannivisentini 0:969a2be49f41 260 uint8_t uM24SRbuffer[0xFF];
giovannivisentini 0:969a2be49f41 261 uint8_t uDIDbyte;
giovannivisentini 0:969a2be49f41 262 } M24SR_DrvDataTypeDef;
giovannivisentini 0:969a2be49f41 263
giovannivisentini 15:67e136b6921d 264 typedef void* M24SR_InitTypeDef;
giovannivisentini 15:67e136b6921d 265
giovannivisentini 0:969a2be49f41 266 extern NFC_StatusTypeDef M24SR_IO_Init(void *handle);
giovannivisentini 0:969a2be49f41 267 extern NFC_StatusTypeDef M24SR_IO_IsAnswerReady(void *handle);
giovannivisentini 0:969a2be49f41 268 extern NFC_StatusTypeDef M24SR_IO_SendI2Ccommand(void *handle, uint8_t NbByte,
giovannivisentini 0:969a2be49f41 269 uint8_t *pBuffer);
giovannivisentini 0:969a2be49f41 270 extern NFC_StatusTypeDef M24SR_IO_ReceiveI2Cresponse(void *handle,
giovannivisentini 0:969a2be49f41 271 uint8_t NbByte, uint8_t *pBuffer);
giovannivisentini 0:969a2be49f41 272 extern NFC_StatusTypeDef M24SR_IO_PollI2C(void *handle);
giovannivisentini 13:840a9c7f90b9 273 //extern void M24SR_IO_GPO_ReadPin(void *handle, GPIO_PinState *pPinState);
giovannivisentini 13:840a9c7f90b9 274 //extern void M24SR_IO_RFDIS_WritePin(void *handle, GPIO_PinState PinState);
giovannivisentini 13:840a9c7f90b9 275 extern void M24SR_IO_GPO_ReadPin(void *handle, uint8_t *pPinState);
giovannivisentini 13:840a9c7f90b9 276 extern void M24SR_IO_RFDIS_WritePin(void *handle, uint8_t PinState);
giovannivisentini 18:10def2fefa8a 277 //extern void M24SR_IO_SetI2CSynchroMode(void *handle,
giovannivisentini 18:10def2fefa8a 278 // M24SR_WAITINGTIME_MGMT mode);
giovannivisentini 0:969a2be49f41 279
giovannivisentini 0:969a2be49f41 280 /**
giovannivisentini 0:969a2be49f41 281 * @}
giovannivisentini 0:969a2be49f41 282 */
giovannivisentini 0:969a2be49f41 283
giovannivisentini 0:969a2be49f41 284 /**
giovannivisentini 0:969a2be49f41 285 * @}
giovannivisentini 0:969a2be49f41 286 */
giovannivisentini 0:969a2be49f41 287
giovannivisentini 0:969a2be49f41 288 #ifdef __cplusplus
giovannivisentini 0:969a2be49f41 289 }
giovannivisentini 0:969a2be49f41 290 #endif
giovannivisentini 0:969a2be49f41 291
giovannivisentini 0:969a2be49f41 292 #endif /* __DRV_M24SR_H */
giovannivisentini 0:969a2be49f41 293
giovannivisentini 0:969a2be49f41 294 /******************* (C) COPYRIGHT 2013 STMicroelectronics *****END OF FILE****/