Uart Peripheral
- Author
- shensley
- Date
- March 2020
#include <uart.h>
|
| UartHandler () |
|
| UartHandler (const UartHandler &other)=default |
|
UartHandler & | operator= (const UartHandler &other)=default |
|
Result | Init (const Config &config) |
|
const Config & | GetConfig () const |
|
Result | BlockingTransmit (uint8_t *buff, size_t size, uint32_t timeout=100) |
|
Result | BlockingReceive (uint8_t *buffer, uint16_t size, uint32_t timeout=100) |
|
Result | DmaTransmit (uint8_t *buff, size_t size, UartHandler::StartCallbackFunctionPtr start_callback, UartHandler::EndCallbackFunctionPtr end_callback, void *callback_context) |
|
Result | DmaReceive (uint8_t *buff, size_t size, UartHandler::StartCallbackFunctionPtr start_callback, UartHandler::EndCallbackFunctionPtr end_callback, void *callback_context) |
|
Result | DmaListenStart (uint8_t *buff, size_t size, CircularRxCallbackFunctionPtr cb, void *callback_context) |
|
Result | DmaListenStop () |
|
bool | IsListening () const |
|
int | CheckError () |
|
int | PollReceive (uint8_t *buff, size_t size, uint32_t timeout) |
|
Result | PollTx (uint8_t *buff, size_t size) |
|
◆ CircularRxCallbackFunctionPtr
A callback to be executed when using circular/listening mode includes a callback context, as well as the data to be handled This fires either after half of the size of the user-defined buffer has been transferred from peripheral to memory, or after an IDLE frame is detected.
- Parameters
-
data | byte-buffer to fill with data |
size | size of the "data" byte buffer |
context | user-defined context variable to pass state to the callback |
result | state of the UART Handler result, should be OK if things are OK. |
◆ EndCallbackFunctionPtr
A callback to be executed after a standard dma transfer is completed.
◆ StartCallbackFunctionPtr
typedef void(* daisy::UartHandler::StartCallbackFunctionPtr) (void *context) |
A callback to be executed right before a standard dma transfer is started.
◆ DmaDirection
◆ Result
Return values for Uart functions.
◆ UartHandler() [1/2]
daisy::UartHandler::UartHandler |
( |
| ) |
|
|
inline |
◆ UartHandler() [2/2]
◆ BlockingReceive()
Polling Receive
- Parameters
-
buffer | input buffer |
size | buffer size |
timeout | How long to timeout for in milliseconds |
- Returns
- Whether the receive was successful or not
◆ BlockingTransmit()
Blocking transmit
- Parameters
-
buff | input buffer |
size | buffer size |
timeout | how long in milliseconds the function will wait before returning without successful communication |
◆ CheckError()
int daisy::UartHandler::CheckError |
( |
| ) |
|
- Returns
- the result of HAL_UART_GetError() to the user.
◆ DmaListenStart()
Starts the DMA Reception in "Listen" mode. In this mode the DMA is configured for circular behavior, and the IDLE interrupt is enabled.
At TC, HT, and IDLE interrupts data must be processed.
Size must be set so that at maximum bandwidth, the software has time to process N bytes before the next circular IRQ is fired
- Parameters
-
buff | buffer of data accessible by DMA. |
size | size of buffer |
cb | callback that happens containing new bytes to process in software |
callback_context | pointer to user-defined data accessible from callback |
◆ DmaListenStop()
Result daisy::UartHandler::DmaListenStop |
( |
| ) |
|
Stops the DMA Reception during listen mode
◆ DmaReceive()
DMA-based receive
- Parameters
-
*buff | input buffer |
size | buffer size |
start_callback | A callback to execute when the transfer starts, or NULL. The callback is called from an interrupt, so keep it fast. |
end_callback | A callback to execute when the transfer finishes, or NULL. The callback is called from an interrupt, so keep it fast. |
callback_context | A pointer that will be passed back to you in the callbacks.
|
- Returns
- Whether the receive was successful or not
◆ DmaTransmit()
DMA-based transmit
- Parameters
-
*buff | input buffer |
size | buffer size |
start_callback | A callback to execute when the transfer starts, or NULL. The callback is called from an interrupt, so keep it fast. |
end_callback | A callback to execute when the transfer finishes, or NULL. The callback is called from an interrupt, so keep it fast. |
callback_context | A pointer that will be passed back to you in the callbacks.
|
- Returns
- Whether the transmit was successful or not
◆ GetConfig()
Returns the current config.
◆ Init()
Initializes the UART Peripheral
◆ IsListening()
bool daisy::UartHandler::IsListening |
( |
| ) |
const |
Returns whether listen the DmaListen mode is active or not
◆ operator=()
◆ PollReceive()
Will be deprecated soon! Wrapper for BlockingTransmit
◆ PollTx()
Will be deprecated soon! Wrapper for BlockingTransmit
The documentation for this class was generated from the following file: