nRF5 SDK v12.1.0
Modules | Typedefs | Enumerations | Functions
NFC Type 2 Tag HAL

nRF52 only: Hardware abstraction layer for the NFC Type 2 Tag library. More...

Modules

 Hardware Abstraction Layer for NFC library. configuration
 

Typedefs

typedef void(* hal_nfc_callback_t )(void *p_context, hal_nfc_event_t event, const uint8_t *p_data, size_t data_length)
 Callback from HAL_NFC layer into upper layer. More...
 

Enumerations

enum  hal_nfc_event_t {
  HAL_NFC_EVENT_FIELD_ON,
  HAL_NFC_EVENT_FIELD_OFF,
  HAL_NFC_EVENT_DATA_RECEIVED,
  HAL_NFC_EVENT_DATA_TRANSMITTED
}
 Events passed to upper-layer callback function. More...
 
enum  hal_nfc_param_id_t {
  HAL_NFC_PARAM_ID_TESTING,
  HAL_NFC_PARAM_ID_UNKNOWN
}
 Parameter IDs for set/get function. More...
 

Functions

ret_code_t hal_nfc_setup (hal_nfc_callback_t callback, void *p_context)
 Function for initializing the NFC layer. More...
 
ret_code_t hal_nfc_parameter_set (hal_nfc_param_id_t id, void *p_data, size_t data_length)
 Function for setting a HAL_NFC parameter. More...
 
ret_code_t hal_nfc_parameter_get (hal_nfc_param_id_t id, void *p_data, size_t *p_max_data_length)
 Function for querying a HAL_NFC parameter value. More...
 
ret_code_t hal_nfc_start (void)
 Function for starting the NFC subsystem. More...
 
ret_code_t hal_nfc_send (const uint8_t *p_data, size_t data_length)
 Function for sending a packet to the connected NFC reader. More...
 
ret_code_t hal_nfc_stop (void)
 Function for stopping the NFC subsystem. More...
 
ret_code_t hal_nfc_done (void)
 Function for releasing resources. More...
 

Detailed Description

nRF52 only: Hardware abstraction layer for the NFC Type 2 Tag library.

Typedef Documentation

typedef void(* hal_nfc_callback_t)(void *p_context, hal_nfc_event_t event, const uint8_t *p_data, size_t data_length)

Callback from HAL_NFC layer into upper layer.

If event == HAL_NFC_EVENT_DATA_RECEIVED: data points to the received packet. The memory belongs to the HAL_NFC layer and is guaranteed to be valid only until the callback returns.

If event == HAL_NFC_EVENT_DATA_TRANSMITTED: data points to the transmitted packet. The memory belongs to the application.

If event == <Other event>: data definition is event-specific (to be defined).

Parameters
[in]p_contextContext for callback execution.
[in]eventThe event that occurred.
[in]p_dataReceived/transmitted data or NULL.
[in]data_lengthSize of the received/transmitted packet.

Enumeration Type Documentation

Events passed to upper-layer callback function.

Enumerator
HAL_NFC_EVENT_FIELD_ON 

Field is detected.

HAL_NFC_EVENT_FIELD_OFF 

Field is lost.

HAL_NFC_EVENT_DATA_RECEIVED 

Data is recived.

HAL_NFC_EVENT_DATA_TRANSMITTED 

Data is Transmitted.

Parameter IDs for set/get function.

Enumerator
HAL_NFC_PARAM_ID_TESTING 

Used for unit tests.

Function Documentation

ret_code_t hal_nfc_done ( void  )

Function for releasing resources.

After this call returns, the callback is considered invalid and no more events will be posted to it.

Return values
NRF_SUCCESSThis function always succeeds.
ret_code_t hal_nfc_parameter_get ( hal_nfc_param_id_t  id,
void *  p_data,
size_t *  p_max_data_length 
)

Function for querying a HAL_NFC parameter value.

The queried value will be placed into the passed data buffer. If the buffer is too small, maxDataLength will contain the required buffer size.

Parameters
[in]idID of the parameter to query.
[in]p_dataPointer to a buffer receiving the queried data.
[in,out]p_max_data_lengthSize of the buffer, receives needed size if buffer is too small.
Return values
NRF_SUCCESSIf the parameter was received successfully. If one of the arguments was invalid (for example, the buffer was too small), an error code is returned.
ret_code_t hal_nfc_parameter_set ( hal_nfc_param_id_t  id,
void *  p_data,
size_t  data_length 
)

Function for setting a HAL_NFC parameter.

This function allows to set any parameter defined as available by HAL_NFC.

Parameters
[in]idID of the parameter to set.
[in]p_dataPointer to a buffer containing the data to set.
[in]data_lengthSize of the buffer containing the data to set.
Return values
NRF_SUCCESSIf the parameter was set successfully. If one of the arguments was invalid (for example, a wrong data length), an error code is returned.
ret_code_t hal_nfc_send ( const uint8_t *  p_data,
size_t  data_length 
)

Function for sending a packet to the connected NFC reader.

The provided data buffer belongs to the caller and is guaranteed to be valid until the HAL_NFC_EVENT_DATA_TRANSMITTED event is received by the callback.

Parameters
[in]p_dataThe data packet to send.
[in]data_lengthSize of the packet in bytes.
Return values
NRF_SUCCESSIf the packet was sent. Otherwise, an error code is returned.
ret_code_t hal_nfc_setup ( hal_nfc_callback_t  callback,
void *  p_context 
)

Function for initializing the NFC layer.

This function provides a pointer to a callback function and the callback context to the NFC layer.

Parameters
[in]callbackPointer to the callback function.
[in]p_contextContext of callback.
Return values
NRF_SUCCESSIf the NFC layer was initialized successfully. If one of the arguments was invalid, an error code is returned.
ret_code_t hal_nfc_start ( void  )

Function for starting the NFC subsystem.

After this function completes, NFC readers will be able to detect the chip.

Return values
NRF_SUCCESSIf the NFC subsystem was started successfully. If the NFC subsystem could not be started, an error code is returned.
ret_code_t hal_nfc_stop ( void  )

Function for stopping the NFC subsystem.

After this function returns, NFC readers will no longer be able to connect to the chip.

Return values
NRF_SUCCESSIf the NFC subsystem was stopped. Otherwise, an error code is returned.

Documentation feedback | Developer Zone | Subscribe | Updated