Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 74 additions & 8 deletions nrfx/hal/nrf_uarte.h
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,24 @@ NRF_STATIC_INLINE void nrf_uarte_configure(NRF_UARTE_Type * p_reg,
NRF_STATIC_INLINE void nrf_uarte_baudrate_set(NRF_UARTE_Type * p_reg,
nrf_uarte_baudrate_t baudrate);

/**
* @brief Function for setting the transmit buffer length.
*
* @param[in] p_reg Pointer to the structure of registers of the peripheral.
* @param[in] length Maximum number of data bytes to receive.
*/
NRF_STATIC_INLINE void nrf_uarte_tx_maxcnt_set(NRF_UARTE_Type * p_reg,
size_t length);

/**
* @brief Function for setting the transmit buffer pointer.
*
* @param[in] p_reg Pointer to the structure of registers of the peripheral.
* @param[in] p_buffer Pointer to the buffer for received data.
*/
NRF_STATIC_INLINE void nrf_uarte_tx_ptr_set(NRF_UARTE_Type * p_reg,
uint8_t const * p_buffer);

/**
* @brief Function for setting the transmit buffer.
*
Expand Down Expand Up @@ -732,6 +750,24 @@ NRF_STATIC_INLINE uint8_t const * nrf_uarte_tx_buffer_get(NRF_UARTE_Type * p_reg
*/
NRF_STATIC_INLINE uint32_t nrf_uarte_tx_amount_get(NRF_UARTE_Type const * p_reg);

/**
* @brief Function for setting the receive buffer length.
*
* @param[in] p_reg Pointer to the structure of registers of the peripheral.
* @param[in] length Maximum number of data bytes to receive.
*/
NRF_STATIC_INLINE void nrf_uarte_rx_maxcnt_set(NRF_UARTE_Type * p_reg,
size_t length);

/**
* @brief Function for setting the receive buffer pointer.
*
* @param[in] p_reg Pointer to the structure of registers of the peripheral.
* @param[in] p_buffer Pointer to the buffer for received data.
*/
NRF_STATIC_INLINE void nrf_uarte_rx_ptr_set(NRF_UARTE_Type * p_reg,
uint8_t * p_buffer);

/**
* @brief Function for setting the receive buffer.
*
Expand Down Expand Up @@ -1020,19 +1056,34 @@ NRF_STATIC_INLINE void nrf_uarte_baudrate_set(NRF_UARTE_Type * p_reg, nrf_uarte_
p_reg->BAUDRATE = baudrate;
}

NRF_STATIC_INLINE void nrf_uarte_tx_buffer_set(NRF_UARTE_Type * p_reg,
uint8_t const * p_buffer,
NRF_STATIC_INLINE void nrf_uarte_tx_maxcnt_set(NRF_UARTE_Type * p_reg,
size_t length)
{
#if NRF_UARTE_HAS_DMA_REG
p_reg->DMA.TX.PTR = (uint32_t)p_buffer;
p_reg->DMA.TX.MAXCNT = length;
#else
p_reg->TXD.PTR = (uint32_t)p_buffer;
p_reg->TXD.MAXCNT = length;
#endif
}

NRF_STATIC_INLINE void nrf_uarte_tx_ptr_set(NRF_UARTE_Type * p_reg,
uint8_t const * p_buffer)
{
#if NRF_UARTE_HAS_DMA_REG
p_reg->DMA.TX.PTR = (uint32_t)p_buffer;
#else
p_reg->TXD.PTR = (uint32_t)p_buffer;
#endif
}

NRF_STATIC_INLINE void nrf_uarte_tx_buffer_set(NRF_UARTE_Type * p_reg,
uint8_t const * p_buffer,
size_t length)
{
nrf_uarte_tx_ptr_set(p_reg, p_buffer);
nrf_uarte_tx_maxcnt_set(p_reg, length);
}

NRF_STATIC_INLINE uint8_t const * nrf_uarte_tx_buffer_get(NRF_UARTE_Type * p_reg)
{
#if NRF_UARTE_HAS_DMA_REG
Expand All @@ -1051,19 +1102,34 @@ NRF_STATIC_INLINE uint32_t nrf_uarte_tx_amount_get(NRF_UARTE_Type const * p_reg)
#endif
}

NRF_STATIC_INLINE void nrf_uarte_rx_buffer_set(NRF_UARTE_Type * p_reg,
uint8_t * p_buffer,
NRF_STATIC_INLINE void nrf_uarte_rx_maxcnt_set(NRF_UARTE_Type * p_reg,
size_t length)
{
#if NRF_UARTE_HAS_DMA_REG
p_reg->DMA.RX.PTR = (uint32_t)p_buffer;
p_reg->DMA.RX.MAXCNT = length;
#else
p_reg->RXD.PTR = (uint32_t)p_buffer;
p_reg->RXD.MAXCNT = length;
#endif
}

NRF_STATIC_INLINE void nrf_uarte_rx_ptr_set(NRF_UARTE_Type * p_reg,
uint8_t * p_buffer)
{
#if NRF_UARTE_HAS_DMA_REG
p_reg->DMA.RX.PTR = (uint32_t)p_buffer;
#else
p_reg->RXD.PTR = (uint32_t)p_buffer;
#endif
}

NRF_STATIC_INLINE void nrf_uarte_rx_buffer_set(NRF_UARTE_Type * p_reg,
uint8_t * p_buffer,
size_t length)
{
nrf_uarte_rx_ptr_set(p_reg, p_buffer);
nrf_uarte_rx_maxcnt_set(p_reg, length);
}

NRF_STATIC_INLINE uint8_t * nrf_uarte_rx_buffer_get(NRF_UARTE_Type * p_reg)
{
#if NRF_UARTE_HAS_DMA_REG
Expand Down