| nRF5 SDK v12.0.0 |

Choose documentation: | nRF5 SDK | S130 SoftDevice API | S132 SoftDevice API | S212 SoftDevice API | S332 SoftDevice API

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Modules | Typedefs | Enumerations | Functions
NFC Type 2 Tag HAL
NFC Type 2 Tag

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_context | Context for callback execution.
  [in] | event | The event that occurred.
  [in] | p_data | Received/transmitted data or NULL.
  [in] | data_length | Size of the received/transmitted packet.

## Enumeration Type Documentation

enum hal_nfc_event_t

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.

enum hal_nfc_param_id_t

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_SUCCESS | This 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] | id | ID of the parameter to query.
  [in] | p_data | Pointer to a buffer receiving the queried data.
  [in,out] | p_max_data_length | Size of the buffer, receives needed size if buffer is too small.

Return values

  NRF_SUCCESS | If 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] | id | ID of the parameter to set.
  [in] | p_data | Pointer to a buffer containing the data to set.
  [in] | data_length | Size of the buffer containing the data to set.

Return values

  NRF_SUCCESS | If 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_data | The data packet to send.
  [in] | data_length | Size of the packet in bytes.

Return values

  NRF_SUCCESS | If 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] | callback | Pointer to the callback function.
  [in] | p_context | Context of callback.

Return values

  NRF_SUCCESS | If 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_SUCCESS | If 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_SUCCESS | If the NFC subsystem was stopped. Otherwise, an error code is returned.