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:
Thu Nov 19 08:50:18 2015 +0000
Revision:
0:674813bd5ec9
first commit,

Who changed what in which revision?

UserRevisionLine numberNew contents of line
giovannivisentini 0:674813bd5ec9 1 /**
giovannivisentini 0:674813bd5ec9 2 ******************************************************************************
giovannivisentini 0:674813bd5ec9 3 * @file lib_M24SR.h
giovannivisentini 0:674813bd5ec9 4 * @author MMY Application Team
giovannivisentini 0:674813bd5ec9 5 * @version V1.0.0
giovannivisentini 0:674813bd5ec9 6 * @date 20-November-2013
giovannivisentini 0:674813bd5ec9 7 * @brief This file help to manage Data inside M24SR.
giovannivisentini 0:674813bd5ec9 8 ******************************************************************************
giovannivisentini 0:674813bd5ec9 9 * @attention
giovannivisentini 0:674813bd5ec9 10 *
giovannivisentini 0:674813bd5ec9 11 * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
giovannivisentini 0:674813bd5ec9 12 *
giovannivisentini 0:674813bd5ec9 13 * Licensed under MMY-ST Liberty SW License Agreement V2, (the "License");
giovannivisentini 0:674813bd5ec9 14 * You may not use this file except in compliance with the License.
giovannivisentini 0:674813bd5ec9 15 * You may obtain a copy of the License at:
giovannivisentini 0:674813bd5ec9 16 *
giovannivisentini 0:674813bd5ec9 17 * http://www.st.com/software_license_agreement_liberty_v2
giovannivisentini 0:674813bd5ec9 18 *
giovannivisentini 0:674813bd5ec9 19 * Unless required by applicable law or agreed to in writing, software
giovannivisentini 0:674813bd5ec9 20 * distributed under the License is distributed on an "AS IS" BASIS,
giovannivisentini 0:674813bd5ec9 21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
giovannivisentini 0:674813bd5ec9 22 * See the License for the specific language governing permissions and
giovannivisentini 0:674813bd5ec9 23 * limitations under the License.
giovannivisentini 0:674813bd5ec9 24 *
giovannivisentini 0:674813bd5ec9 25 ******************************************************************************
giovannivisentini 0:674813bd5ec9 26 */
giovannivisentini 0:674813bd5ec9 27
giovannivisentini 0:674813bd5ec9 28 /* Define to prevent recursive inclusion -------------------------------------*/
giovannivisentini 0:674813bd5ec9 29 #ifndef __LIB_M24SR_H
giovannivisentini 0:674813bd5ec9 30 #define __LIB_M24SR_H
giovannivisentini 0:674813bd5ec9 31
giovannivisentini 0:674813bd5ec9 32 #ifdef __cplusplus
giovannivisentini 0:674813bd5ec9 33 extern "C" {
giovannivisentini 0:674813bd5ec9 34 #endif
giovannivisentini 0:674813bd5ec9 35
giovannivisentini 0:674813bd5ec9 36 /* Includes ------------------------------------------------------------------*/
giovannivisentini 0:674813bd5ec9 37 #include <stdint.h>
giovannivisentini 0:674813bd5ec9 38 /** @addtogroup M24SR_Driver
giovannivisentini 0:674813bd5ec9 39 * @{
giovannivisentini 0:674813bd5ec9 40 */
giovannivisentini 0:674813bd5ec9 41
giovannivisentini 0:674813bd5ec9 42
giovannivisentini 0:674813bd5ec9 43 /** @addtogroup lib_M24SR
giovannivisentini 0:674813bd5ec9 44 * @{
giovannivisentini 0:674813bd5ec9 45 */
giovannivisentini 0:674813bd5ec9 46
giovannivisentini 0:674813bd5ec9 47 /* Exported constants --------------------------------------------------------*/
giovannivisentini 0:674813bd5ec9 48
giovannivisentini 0:674813bd5ec9 49 /** @defgroup lib_M24SR_Exported_Constants
giovannivisentini 0:674813bd5ec9 50 * @{
giovannivisentini 0:674813bd5ec9 51 */
giovannivisentini 0:674813bd5ec9 52
giovannivisentini 0:674813bd5ec9 53 /** @defgroup lib_M24SR_M24SR_EEPROM_Size_Version
giovannivisentini 0:674813bd5ec9 54 * @{
giovannivisentini 0:674813bd5ec9 55 */
giovannivisentini 0:674813bd5ec9 56 /* ---------------------- M24SR properties -----------------------------------*/
giovannivisentini 0:674813bd5ec9 57 #define M24SR04_NDEF_MAX_SIZE 0x200
giovannivisentini 0:674813bd5ec9 58 #define M24SR16_NDEF_MAX_SIZE 0x800
giovannivisentini 0:674813bd5ec9 59 #define M24SR64_NDEF_MAX_SIZE 0x2000
giovannivisentini 0:674813bd5ec9 60 /**
giovannivisentini 0:674813bd5ec9 61 * @}
giovannivisentini 0:674813bd5ec9 62 */
giovannivisentini 0:674813bd5ec9 63
giovannivisentini 0:674813bd5ec9 64 /** @defgroup lib_M24SR_Flag_to_select_open_session_command
giovannivisentini 0:674813bd5ec9 65 * @{
giovannivisentini 0:674813bd5ec9 66 */
giovannivisentini 0:674813bd5ec9 67 #define ASK_FOR_SESSION 0x0000
giovannivisentini 0:674813bd5ec9 68 #define TAKE_SESSION 0xFFFF
giovannivisentini 0:674813bd5ec9 69 /**
giovannivisentini 0:674813bd5ec9 70 * @}
giovannivisentini 0:674813bd5ec9 71 */
giovannivisentini 0:674813bd5ec9 72
giovannivisentini 0:674813bd5ec9 73 /* M24SR buffer size is 0xF6 can be retrieve dynamicaly in CC file */
giovannivisentini 0:674813bd5ec9 74 #define M24SR_READ_MAX_NBBYTE 0xF6
giovannivisentini 0:674813bd5ec9 75 #define M24SR_WRITE_MAX_NBBYTE 0xF6
giovannivisentini 0:674813bd5ec9 76
giovannivisentini 0:674813bd5ec9 77
giovannivisentini 0:674813bd5ec9 78 #define NDEF_SESSION_CLOSED 0xDEADBEEF
giovannivisentini 0:674813bd5ec9 79
giovannivisentini 0:674813bd5ec9 80 /**
giovannivisentini 0:674813bd5ec9 81 * @}
giovannivisentini 0:674813bd5ec9 82 */
giovannivisentini 0:674813bd5ec9 83
giovannivisentini 0:674813bd5ec9 84
giovannivisentini 0:674813bd5ec9 85 /* Exported macro ------------------------------------------------------------*/
giovannivisentini 0:674813bd5ec9 86
giovannivisentini 0:674813bd5ec9 87 /** @brief Check return statement of function
giovannivisentini 0:674813bd5ec9 88 * @param fCall function result to check
giovannivisentini 0:674813bd5ec9 89 * @retval M24SR_ACTION_COMPLETED or jump to dedicated Error management
giovannivisentini 0:674813bd5ec9 90 */
giovannivisentini 0:674813bd5ec9 91 #ifndef errorchk
giovannivisentini 0:674813bd5ec9 92 #define errorchk(fCall) if (status = (fCall), status != NFC_OK) \
giovannivisentini 0:674813bd5ec9 93 {goto Error;} else
giovannivisentini 0:674813bd5ec9 94 #endif
giovannivisentini 0:674813bd5ec9 95
giovannivisentini 0:674813bd5ec9 96 /**
giovannivisentini 0:674813bd5ec9 97 * @}
giovannivisentini 0:674813bd5ec9 98 */
giovannivisentini 0:674813bd5ec9 99
giovannivisentini 0:674813bd5ec9 100 /**
giovannivisentini 0:674813bd5ec9 101 * @}
giovannivisentini 0:674813bd5ec9 102 */
giovannivisentini 0:674813bd5ec9 103
giovannivisentini 0:674813bd5ec9 104 uint16_t M24SR_Initialization (uint8_t* pCCBuffer, uint8_t size );
giovannivisentini 0:674813bd5ec9 105
giovannivisentini 0:674813bd5ec9 106 uint16_t M24SR_GetNDEFFileId ( uint16_t *NDEF_fileID );
giovannivisentini 0:674813bd5ec9 107 uint16_t M24SR_OpenNDEFSession ( uint16_t NDEF_fileID, uint16_t Priority );
giovannivisentini 0:674813bd5ec9 108 uint16_t M24SR_ReadData ( uint16_t Offset , uint16_t DataSize , uint8_t* pData);
giovannivisentini 0:674813bd5ec9 109 uint16_t M24SR_ForceReadData ( uint16_t Offset , uint16_t DataSize , uint8_t* pData);
giovannivisentini 0:674813bd5ec9 110 uint16_t M24SR_WriteData ( uint16_t Offset , uint16_t DataSize , uint8_t* pData);
giovannivisentini 0:674813bd5ec9 111 uint16_t M24SR_CloseNDEFSession ( uint16_t NDEF_fileID );
giovannivisentini 0:674813bd5ec9 112
giovannivisentini 0:674813bd5ec9 113 uint16_t M24SR_EnableReadPassword( uint8_t* pCurrentWritePassword, uint8_t* pNewPassword);
giovannivisentini 0:674813bd5ec9 114 uint16_t M24SR_DisableReadPassword( uint8_t* pCurrentWritePassword );
giovannivisentini 0:674813bd5ec9 115 uint16_t M24SR_EnableWritePassword( uint8_t* pCurrentWritePassword, uint8_t* pNewPassword);
giovannivisentini 0:674813bd5ec9 116 uint16_t M24SR_DisableWritePassword( uint8_t* pCurrentWritePassword );
giovannivisentini 0:674813bd5ec9 117 uint16_t M24SR_DisableAllPassword( uint8_t* pSuperUserPassword);
giovannivisentini 0:674813bd5ec9 118
giovannivisentini 0:674813bd5ec9 119 uint16_t M24SR_EnableReadOnly( uint8_t* pCurrentWritePassword);
giovannivisentini 0:674813bd5ec9 120 uint16_t M24SR_DisableReadOnly( uint8_t* pCurrentWritePassword);
giovannivisentini 0:674813bd5ec9 121 uint16_t M24SR_EnableWriteOnly( uint8_t* pCurrentWritePassword);
giovannivisentini 0:674813bd5ec9 122 uint16_t M24SR_DisableWriteOnly( uint8_t* pCurrentWritePassword);
giovannivisentini 0:674813bd5ec9 123
giovannivisentini 0:674813bd5ec9 124 uint16_t M24SR_ManageGPO( uint8_t GPO_config, uint8_t mode);
giovannivisentini 0:674813bd5ec9 125
giovannivisentini 0:674813bd5ec9 126 #ifdef __cplusplus
giovannivisentini 0:674813bd5ec9 127 }
giovannivisentini 0:674813bd5ec9 128 #endif
giovannivisentini 0:674813bd5ec9 129
giovannivisentini 0:674813bd5ec9 130
giovannivisentini 0:674813bd5ec9 131 #endif /* __LIB_M24SR_H */
giovannivisentini 0:674813bd5ec9 132
giovannivisentini 0:674813bd5ec9 133 /******************* (C) COPYRIGHT 2013 STMicroelectronics *****END OF FILE****/
giovannivisentini 0:674813bd5ec9 134