This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

Dependencies:   NDefLib X_NUCLEO_NFC01A1 mbed

Fork of X-MBED-NFC1 by Giovanni Visentini

This application provides a set of demos with X-NUCLEO-NFC01A1 expansion board.

The available demos are:

  • SAMPLE_WRITE_URL: write a tag with the ST home page URL
  • SAMPLE_COUNT_CLICK: create a custom tag to count and report the user button clicks.
  • SAMPLE_WRITE_AND_CHANGE_ALL: write a tag with all the supported records and update the tag contents when the user button is pressed.
  • SAMPLE_LOCK_TAG_CONTENT: use the M24SR component API to set the NFC tag as read-only.

To enable the different demos comment/uncomment the SAMPLE_* macros provided in main.cpp .

Committer:
giovannivisentini
Date:
Fri Nov 27 15:10:25 2015 +0000
Revision:
1:6d202b62ed68
Parent:
0:674813bd5ec9
add the enable/disable read/write function

Who changed what in which revision?

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