**EF\_UART\_readCharNonBlocking** (**EF\_UART\_TYPE\_PTR** uart, char *RXDATA_value, bool *data_available) This is a non-blocking function that reads a character from the UART receive FIFO if data is available and returns a status code.
**EF\_UART\_setDataSize** (**EF\_UART\_TYPE\_PTR** uart, uint32_t value) sets the Data Size (Data word length: 5-9 bits ) by setting the "wlen" field in configuration register
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setGclkEnable** (**EF\_UART\_TYPE\_PTR** uart, uint32_t value) sets the GCLK enable bit in the UART register to a certain value
**EF\_UART\_setMatchData** (**EF\_UART\_TYPE\_PTR** uart, uint32_t matchData) sets the matchData to a certain value at which "MATCH" interrupt will be raised
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setParityType** (**EF\_UART\_TYPE\_PTR** uart, enum **parity\_type** parity) sets the "parity" field in configuration register (could be none, odd, even, sticky 0 or sticky 1)
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setPrescaler** (**EF\_UART\_TYPE\_PTR** uart, uint32_t prescaler) sets the prescaler to a certain value where Baud_rate = Bus_Clock_Freq/((Prescaler+1)*16)
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setRxFIFOThreshold** (**EF\_UART\_TYPE\_PTR** uart, uint32_t threshold) sets the RX FIFO threshold to a certain value at which "RXA" interrupt will be raised
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setTimeoutBits** (**EF\_UART\_TYPE\_PTR** uart, uint32_t value) sets the "timeout" field in configuration register which is receiver timeout measured in number of bits at which the timeout flag will be raised
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setTwoStopBitsSelect** (**EF\_UART\_TYPE\_PTR** uart, bool is_two_bits) sets the "stp2" bit in configuration register (whether the stop boits are two or one)
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_setTxFIFOThreshold** (**EF\_UART\_TYPE\_PTR** uart, uint32_t threshold) sets the TX FIFO threshold to a certain value at which "TXB" interrupt will be raised
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_spaceAvailable** (**EF\_UART\_TYPE\_PTR** uart, bool *flag) This function returns a flag indicating whether or not the transmit is available, i.e. the transmit FIFO is not full.
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_writeChar** (**EF\_UART\_TYPE\_PTR** uart, char data) transmit a single character through uart
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_writeCharArr** (**EF\_UART\_TYPE\_PTR** uart, const char *char_arr) transmit an array of characters through uart
-
+
**EF\_DRIVER\_STATUS**
**EF\_UART\_writeCharNonBlocking** (**EF\_UART\_TYPE\_PTR** uart, char data, bool *data_sent)
-This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.
+This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.
+
+
**EF\_DRIVER\_STATUS**
**UART\_Init** (**EF\_UART\_TYPE\_PTR** uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum **parity\_type** parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold)
+This function initializes the UART with the specified parameters.
This function returns a flag indicating whether or not there is data available in the receive FIFO.
Definition: EF_UART.c:713
Parameters:
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -723,13 +730,37 @@
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
This function receives a string message from the UART. The message is stored in a buffer with a specified size.
+
Note:
+
This is a blocking function and can only terminate under the following conditions:
+
+
The buffer is full
+
A "\n" character is received
+
An error is detected
+
+
Parameters:
+
+
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
+
buffer The buffer to store the received message
+
buffer_size The size of the buffer
+
+
Returns:
+
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
+
function <tt>EF_UART_readCharNonBlocking</tt>
This is a non-blocking function that reads a character from the UART receive FIFO if data is available and returns a status code.
This is a non-blocking function that reads a character from the UART receive FIFO if data is availabl...
Definition: EF_UART.c:657
Parameters:
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -738,13 +769,13 @@
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
sets the Data Size (Data word length: 5-9 bits ) by setting the "wlen" field in configuration registe...
Definition: EF_UART.c:268
Parameters:
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -795,7 +826,7 @@
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+
function <tt>EF_UART_setGclkEnable</tt>
sets the GCLK enable bit in the UART register to a certain value
sets the prescaler to a certain value where Baud_rate = Bus_Clock_Freq/((Prescaler+1)*16)
Definition: EF_UART.c:236
Parameters:
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -905,7 +936,7 @@
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+
function <tt>EF_UART_setRxFIFOThreshold</tt>
sets the RX FIFO threshold to a certain value at which "RXA" interrupt will be raised
This function returns a flag indicating whether or not the transmit is available, i....
Definition: EF_UART.c:731
Parameters:
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -975,7 +1006,7 @@
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -1003,14 +1034,14 @@
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+
function <tt>EF_UART_writeCharNonBlocking</tt>
This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.
This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not ...
Definition: EF_UART.c:686
Parameters:
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
@@ -1018,45 +1049,126 @@
data_sent A flag indicating if the data was sent successfully
Returns:
+
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
+
+function <tt>UART_Init</tt>
+
This function initializes the UART with the specified parameters.
This function initializes the UART with the specified parameters.
Definition: EF_UART.c:786
+
Parameters:
+
+
uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
+
baud_rate The baud rate of the UART
+
bus_clock The bus clock frequency
+
data_bits The number of data bits
+
two_stop_bits A flag indicating if two stop bits are used
+
parity The parity mode
+
timeout The receiver timeout
+
rx_threshold The receive FIFO threshold
+
tx_threshold The transmit FIFO threshold
+
+
Returns:
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
diff --git a/docs/doxygen/html/menudata.js b/docs/doxygen/html/menudata.js
index a077581..fc14112 100644
--- a/docs/doxygen/html/menudata.js
+++ b/docs/doxygen/html/menudata.js
@@ -38,7 +38,6 @@ var menudata={children:[
{text:"_",url:"globals.html#index__5F"},
{text:"e",url:"globals.html#index_e"},
{text:"i",url:"globals.html#index_i"},
-{text:"m",url:"globals.html#index_m"},
{text:"n",url:"globals.html#index_n"},
{text:"o",url:"globals.html#index_o"},
{text:"p",url:"globals.html#index_p"},
@@ -46,7 +45,6 @@ var menudata={children:[
{text:"u",url:"globals.html#index_u"}]},
{text:"Functions",url:"globals_func.html",children:[
{text:"e",url:"globals_func.html#index_e"},
-{text:"m",url:"globals_func.html#index_m"},
{text:"u",url:"globals_func.html#index_u"}]},
{text:"Typedefs",url:"globals_type.html"},
{text:"Enumerations",url:"globals_enum.html"},
diff --git a/docs/doxygen/html/search/all_3.js b/docs/doxygen/html/search/all_3.js
index 6a690b9..11c6a06 100644
--- a/docs/doxygen/html/search/all_3.js
+++ b/docs/doxygen/html/search/all_3.js
@@ -43,73 +43,77 @@ var searchData=
['ef_5fuart_5fdisableloopback_40',['EF_UART_disableLoopBack',['../_e_f___u_a_r_t_8c.html#af253218d9f38bc1e0bd0b1196c2fb44d',1,'EF_UART_disableLoopBack(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#af253218d9f38bc1e0bd0b1196c2fb44d',1,'EF_UART_disableLoopBack(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fdisablerx_41',['EF_UART_disableRx',['../_e_f___u_a_r_t_8c.html#a46da4f034dd502e65cdbd198e33611e2',1,'EF_UART_disableRx(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a46da4f034dd502e65cdbd198e33611e2',1,'EF_UART_disableRx(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fdisabletx_42',['EF_UART_disableTx',['../_e_f___u_a_r_t_8c.html#a8ffdd73320ea0474fcb177d306dc6a67',1,'EF_UART_disableTx(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8ffdd73320ea0474fcb177d306dc6a67',1,'EF_UART_disableTx(EF_UART_TYPE_PTR uart): EF_UART.c']]],
- ['ef_5fuart_5fenable_43',['EF_UART_enable',['../_e_f___u_a_r_t_8h.html#a2673b6af3d435a9caa3fd9f115ad1878',1,'EF_UART_enable(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a2673b6af3d435a9caa3fd9f115ad1878',1,'EF_UART_enable(EF_UART_TYPE_PTR uart): EF_UART.c']]],
- ['ef_5fuart_5fenableglitchfilter_44',['EF_UART_enableGlitchFilter',['../_e_f___u_a_r_t_8h.html#acc57380ee395632930bd85ca6377655b',1,'EF_UART_enableGlitchFilter(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#acc57380ee395632930bd85ca6377655b',1,'EF_UART_enableGlitchFilter(EF_UART_TYPE_PTR uart): EF_UART.c']]],
+ ['ef_5fuart_5fenable_43',['EF_UART_enable',['../_e_f___u_a_r_t_8c.html#a2673b6af3d435a9caa3fd9f115ad1878',1,'EF_UART_enable(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a2673b6af3d435a9caa3fd9f115ad1878',1,'EF_UART_enable(EF_UART_TYPE_PTR uart): EF_UART.c']]],
+ ['ef_5fuart_5fenableglitchfilter_44',['EF_UART_enableGlitchFilter',['../_e_f___u_a_r_t_8c.html#acc57380ee395632930bd85ca6377655b',1,'EF_UART_enableGlitchFilter(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acc57380ee395632930bd85ca6377655b',1,'EF_UART_enableGlitchFilter(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fenableloopback_45',['EF_UART_enableLoopBack',['../_e_f___u_a_r_t_8c.html#a8dbf6fd5cdc6e99a3e17486c124d0d1d',1,'EF_UART_enableLoopBack(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8dbf6fd5cdc6e99a3e17486c124d0d1d',1,'EF_UART_enableLoopBack(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fenablerx_46',['EF_UART_enableRx',['../_e_f___u_a_r_t_8c.html#a8fe185c295fdf22ad7f5ab020138e95f',1,'EF_UART_enableRx(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8fe185c295fdf22ad7f5ab020138e95f',1,'EF_UART_enableRx(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fenabletx_47',['EF_UART_enableTx',['../_e_f___u_a_r_t_8c.html#a11caaf87ef28a637bfd825208eb09c18',1,'EF_UART_enableTx(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a11caaf87ef28a637bfd825208eb09c18',1,'EF_UART_enableTx(EF_UART_TYPE_PTR uart): EF_UART.c']]],
- ['ef_5fuart_5ffe_5fflag_48',['EF_UART_FE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aafc66529a3139c689109d2406ed67a57',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fgetconfig_49',['EF_UART_getConfig',['../_e_f___u_a_r_t_8c.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c']]],
- ['ef_5fuart_5fgetctrl_50',['EF_UART_getCTRL',['../_e_f___u_a_r_t_8c.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c']]],
- ['ef_5fuart_5fgetim_51',['EF_UART_getIM',['../_e_f___u_a_r_t_8c.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c']]],
- ['ef_5fuart_5fgetmatchdata_52',['EF_UART_getMatchData',['../_e_f___u_a_r_t_8c.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c']]],
- ['ef_5fuart_5fgetmis_53',['EF_UART_getMIS',['../_e_f___u_a_r_t_8h.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c']]],
- ['ef_5fuart_5fgetparitymode_54',['EF_UART_getParityMode',['../_e_f___u_a_r_t_8h.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c']]],
- ['ef_5fuart_5fgetprescaler_55',['EF_UART_getPrescaler',['../_e_f___u_a_r_t_8c.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c']]],
- ['ef_5fuart_5fgetris_56',['EF_UART_getRIS',['../_e_f___u_a_r_t_8c.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c']]],
- ['ef_5fuart_5fgetrxcount_57',['EF_UART_getRxCount',['../_e_f___u_a_r_t_8c.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c']]],
- ['ef_5fuart_5fgetrxfifothreshold_58',['EF_UART_getRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c']]],
- ['ef_5fuart_5fgettxcount_59',['EF_UART_getTxCount',['../_e_f___u_a_r_t_8c.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c']]],
- ['ef_5fuart_5fgettxfifothreshold_60',['EF_UART_getTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c']]],
- ['ef_5fuart_5fic_5freg_5fmax_5fvalue_61',['EF_UART_IC_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a056fa4df77234c4221790bbefd6cd974',1,'EF_UART.h']]],
- ['ef_5fuart_5fim_5freg_5fmax_5fvalue_62',['EF_UART_IM_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#ac5ebf20bf24247905b19e2cb2060a457',1,'EF_UART.h']]],
- ['ef_5fuart_5fmatch_5fflag_63',['EF_UART_MATCH_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5f6a28e7e7c0693a5d922ab8788d70c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fmatch_5freg_5fmax_5fvalue_64',['EF_UART_MATCH_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aa65fa5d0b6a628fae152ea7013052318',1,'EF_UART.h']]],
- ['ef_5fuart_5for_5fflag_65',['EF_UART_OR_FLAG',['../_e_f___u_a_r_t__regs_8h.html#ad2021fcd6ecdc551490d95ff8a2227f4',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fpr_5freg_5fmax_5fvalue_66',['EF_UART_PR_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a482ad61b42cd1ab32b3d69e7fc2fbf5d',1,'EF_UART.h']]],
- ['ef_5fuart_5fpre_5fflag_67',['EF_UART_PRE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a3cff4fc63e9ab01bad003a962a6d3938',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5freadchar_68',['EF_UART_readChar',['../_e_f___u_a_r_t_8c.html#aed92f78ad479144a2e9bc7169f2a9850',1,'EF_UART_readChar(EF_UART_TYPE_PTR uart, char *RXDATA_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#abda4e085b80f004761b77dbf3f0450e6',1,'EF_UART_readChar(EF_UART_TYPE_PTR uar, char *RXDATA_value): EF_UART.c']]],
- ['ef_5fuart_5freadcharnonblocking_69',['EF_UART_readCharNonBlocking',['../_e_f___u_a_r_t_8h.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c']]],
- ['ef_5fuart_5fregs_2eh_70',['EF_UART_regs.h',['../_e_f___u_a_r_t__regs_8h.html',1,'']]],
- ['ef_5fuart_5frto_5fflag_71',['EF_UART_RTO_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5b304f625110ba9a40b9fb5d0f22928',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fbit_72',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#ae2c3c80712f43d3efef03601ed583a2e',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fmask_73',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#a1959835954e2643cb04ab8b6337500cc',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fbit_74',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#af97f793bc90ec0557b0366f49ed39768',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fmask_75',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3373791334179d5030fc3901e9cc234d',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_76',['EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a7749200841ca06b85560cdcce6143c0f',1,'EF_UART.h']]],
- ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_77',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#adfa08c57c518af19d91b3386f5f5f48e',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_78',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3519d1b3ce36f9ffd11094e6906d02f3',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frxa_5fflag_79',['EF_UART_RXA_FLAG',['../_e_f___u_a_r_t__regs_8h.html#afcc839803a3e147726c4d0ff8aa631ac',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frxf_5fflag_80',['EF_UART_RXF_FLAG',['../_e_f___u_a_r_t__regs_8h.html#abdbd275b9e49d27fc0631f3db144626c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fsetconfig_81',['EF_UART_setConfig',['../_e_f___u_a_r_t_8c.html#a97261ae27ea5d029ecab9b25f2f45ac9',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7abd365f1081dd30bc202b673851f7b7',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t config): EF_UART.c']]],
- ['ef_5fuart_5fsetctrl_82',['EF_UART_setCTRL',['../_e_f___u_a_r_t_8c.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fsetdatasize_83',['EF_UART_setDataSize',['../_e_f___u_a_r_t_8h.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fsetgclkenable_84',['EF_UART_setGclkEnable',['../_e_f___u_a_r_t_8h.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fseticr_85',['EF_UART_setICR',['../_e_f___u_a_r_t_8c.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
- ['ef_5fuart_5fsetim_86',['EF_UART_setIM',['../_e_f___u_a_r_t_8c.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
- ['ef_5fuart_5fsetmatchdata_87',['EF_UART_setMatchData',['../_e_f___u_a_r_t_8c.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c']]],
- ['ef_5fuart_5fsetparitytype_88',['EF_UART_setParityType',['../_e_f___u_a_r_t_8c.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c']]],
- ['ef_5fuart_5fsetprescaler_89',['EF_UART_setPrescaler',['../_e_f___u_a_r_t_8c.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c']]],
- ['ef_5fuart_5fsetrxfifothreshold_90',['EF_UART_setRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a8a2767ea0edab0500745dde177c1e58c',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae7559449b86af3339f32eb9f60da7342',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
- ['ef_5fuart_5fsettimeoutbits_91',['EF_UART_setTimeoutBits',['../_e_f___u_a_r_t_8c.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fsettwostopbitsselect_92',['EF_UART_setTwoStopBitsSelect',['../_e_f___u_a_r_t_8c.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c']]],
- ['ef_5fuart_5fsettxfifothreshold_93',['EF_UART_setTxFIFOThreshold',['../_e_f___u_a_r_t_8h.html#aece15f8d4c46af75f44d94abb3018080',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a30ba41191c67b5242173320ab54e1205',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fspaceavailable_94',['EF_UART_spaceAvailable',['../_e_f___u_a_r_t_8c.html#a7739739a5ceeadcf591f3b387c729d0c',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *TXB_flag): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a26804aec34f642578f9b6243fd16f277',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *flag): EF_UART.c']]],
- ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fbit_95',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#a4d36a0d56e4c71facb77edf936c5c1be',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fmask_96',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#af62b4e21b6b8f13f76fe7a01b9abc46c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fbit_97',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#a32bdc59657c35d0612e6e66fe760adc7',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fmask_98',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#aa1b5bca4b8333cf38e5a36abd61805f5',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_99',['EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aad9c71b2e065a1bc005853521e584cf7',1,'EF_UART.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_100',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#a2cb10104d58a678696601c2eb7cdb17c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_101',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a21fe71b2983c43632eba11aeccbffcb0',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftxb_5fflag_102',['EF_UART_TXB_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a1d10765fcb44dabc4653269f5f45d7e0',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftxe_5fflag_103',['EF_UART_TXE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#af0ef9bb61d418f4ec8031e74ac1374f3',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftype_104',['EF_UART_TYPE',['../_e_f___u_a_r_t__regs_8h.html#ae6e04bb01bfd86ba243d7502c0afedbf',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftype_5fptr_105',['EF_UART_TYPE_PTR',['../_e_f___u_a_r_t__regs_8h.html#ab605c9cde76c27dd58ec6cf73ca70893',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fwritechar_106',['EF_UART_writeChar',['../_e_f___u_a_r_t_8c.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c']]],
- ['ef_5fuart_5fwritechararr_107',['EF_UART_writeCharArr',['../_e_f___u_a_r_t_8c.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c']]],
- ['ef_5fuart_5fwritecharnonblocking_108',['EF_UART_writeCharNonBlocking',['../_e_f___u_a_r_t_8c.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c']]],
- ['even_109',['EVEN',['../_e_f___u_a_r_t_8h.html#aab5cbb4a185bfe65a14e19beeaba4f10a8487756fbc720579906f0ae1738f0fcc',1,'EF_UART.h']]],
- ['example_2ec_110',['example.c',['../example_8c.html',1,'']]],
- ['example_5fuart_5fbase_5faddress_111',['Example_UART_BASE_ADDRESS',['../example_8c.html#a245442e9ecffcadcce85a5cd86e9ed91',1,'example.c']]]
+ ['ef_5fuart_5fexample_48',['EF_UART_example',['../_e_f___u_a_r_t__example_8h.html#a8451a75f6339b51e6239c6c4d01ee4e0',1,'EF_UART_example(void): EF_UART_example.c'],['../_e_f___u_a_r_t__example_8c.html#a8451a75f6339b51e6239c6c4d01ee4e0',1,'EF_UART_example(void): EF_UART_example.c']]],
+ ['ef_5fuart_5fexample_2ec_49',['EF_UART_example.c',['../_e_f___u_a_r_t__example_8c.html',1,'']]],
+ ['ef_5fuart_5fexample_2eh_50',['EF_UART_example.h',['../_e_f___u_a_r_t__example_8h.html',1,'']]],
+ ['ef_5fuart_5fexample_5fc_51',['EF_UART_EXAMPLE_C',['../_e_f___u_a_r_t__example_8c.html#ac2f4a83425438348a71d343432ecdf37',1,'EF_UART_example.c']]],
+ ['ef_5fuart_5ffe_5fflag_52',['EF_UART_FE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aafc66529a3139c689109d2406ed67a57',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fgetconfig_53',['EF_UART_getConfig',['../_e_f___u_a_r_t_8c.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetctrl_54',['EF_UART_getCTRL',['../_e_f___u_a_r_t_8c.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetim_55',['EF_UART_getIM',['../_e_f___u_a_r_t_8c.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetmatchdata_56',['EF_UART_getMatchData',['../_e_f___u_a_r_t_8c.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetmis_57',['EF_UART_getMIS',['../_e_f___u_a_r_t_8c.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetparitymode_58',['EF_UART_getParityMode',['../_e_f___u_a_r_t_8h.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c']]],
+ ['ef_5fuart_5fgetprescaler_59',['EF_UART_getPrescaler',['../_e_f___u_a_r_t_8h.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetris_60',['EF_UART_getRIS',['../_e_f___u_a_r_t_8c.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetrxcount_61',['EF_UART_getRxCount',['../_e_f___u_a_r_t_8c.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetrxfifothreshold_62',['EF_UART_getRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c']]],
+ ['ef_5fuart_5fgettxcount_63',['EF_UART_getTxCount',['../_e_f___u_a_r_t_8c.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c']]],
+ ['ef_5fuart_5fgettxfifothreshold_64',['EF_UART_getTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c']]],
+ ['ef_5fuart_5fic_5freg_5fmax_5fvalue_65',['EF_UART_IC_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a056fa4df77234c4221790bbefd6cd974',1,'EF_UART.h']]],
+ ['ef_5fuart_5fim_5freg_5fmax_5fvalue_66',['EF_UART_IM_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#ac5ebf20bf24247905b19e2cb2060a457',1,'EF_UART.h']]],
+ ['ef_5fuart_5fmatch_5fflag_67',['EF_UART_MATCH_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5f6a28e7e7c0693a5d922ab8788d70c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fmatch_5freg_5fmax_5fvalue_68',['EF_UART_MATCH_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aa65fa5d0b6a628fae152ea7013052318',1,'EF_UART.h']]],
+ ['ef_5fuart_5for_5fflag_69',['EF_UART_OR_FLAG',['../_e_f___u_a_r_t__regs_8h.html#ad2021fcd6ecdc551490d95ff8a2227f4',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fpr_5freg_5fmax_5fvalue_70',['EF_UART_PR_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a482ad61b42cd1ab32b3d69e7fc2fbf5d',1,'EF_UART.h']]],
+ ['ef_5fuart_5fpre_5fflag_71',['EF_UART_PRE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a3cff4fc63e9ab01bad003a962a6d3938',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5freadchar_72',['EF_UART_readChar',['../_e_f___u_a_r_t_8h.html#abda4e085b80f004761b77dbf3f0450e6',1,'EF_UART_readChar(EF_UART_TYPE_PTR uar, char *RXDATA_value): EF_UART.c'],['../_e_f___u_a_r_t_8c.html#aed92f78ad479144a2e9bc7169f2a9850',1,'EF_UART_readChar(EF_UART_TYPE_PTR uart, char *RXDATA_value): EF_UART.c']]],
+ ['ef_5fuart_5freadchararr_73',['EF_UART_readCharArr',['../_e_f___u_a_r_t_8c.html#acb379fe3cc63f5e2eea43522c39823f7',1,'EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acb379fe3cc63f5e2eea43522c39823f7',1,'EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size): EF_UART.c']]],
+ ['ef_5fuart_5freadcharnonblocking_74',['EF_UART_readCharNonBlocking',['../_e_f___u_a_r_t_8c.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c']]],
+ ['ef_5fuart_5fregs_2eh_75',['EF_UART_regs.h',['../_e_f___u_a_r_t__regs_8h.html',1,'']]],
+ ['ef_5fuart_5frto_5fflag_76',['EF_UART_RTO_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5b304f625110ba9a40b9fb5d0f22928',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fbit_77',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#ae2c3c80712f43d3efef03601ed583a2e',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fmask_78',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#a1959835954e2643cb04ab8b6337500cc',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fbit_79',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#af97f793bc90ec0557b0366f49ed39768',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fmask_80',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3373791334179d5030fc3901e9cc234d',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_81',['EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a7749200841ca06b85560cdcce6143c0f',1,'EF_UART.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_82',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#adfa08c57c518af19d91b3386f5f5f48e',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_83',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3519d1b3ce36f9ffd11094e6906d02f3',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frxa_5fflag_84',['EF_UART_RXA_FLAG',['../_e_f___u_a_r_t__regs_8h.html#afcc839803a3e147726c4d0ff8aa631ac',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frxf_5fflag_85',['EF_UART_RXF_FLAG',['../_e_f___u_a_r_t__regs_8h.html#abdbd275b9e49d27fc0631f3db144626c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fsetconfig_86',['EF_UART_setConfig',['../_e_f___u_a_r_t_8c.html#a97261ae27ea5d029ecab9b25f2f45ac9',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7abd365f1081dd30bc202b673851f7b7',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t config): EF_UART.c']]],
+ ['ef_5fuart_5fsetctrl_87',['EF_UART_setCTRL',['../_e_f___u_a_r_t_8c.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fsetdatasize_88',['EF_UART_setDataSize',['../_e_f___u_a_r_t_8c.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fsetgclkenable_89',['EF_UART_setGclkEnable',['../_e_f___u_a_r_t_8c.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fseticr_90',['EF_UART_setICR',['../_e_f___u_a_r_t_8c.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
+ ['ef_5fuart_5fsetim_91',['EF_UART_setIM',['../_e_f___u_a_r_t_8c.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
+ ['ef_5fuart_5fsetmatchdata_92',['EF_UART_setMatchData',['../_e_f___u_a_r_t_8c.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c']]],
+ ['ef_5fuart_5fsetparitytype_93',['EF_UART_setParityType',['../_e_f___u_a_r_t_8c.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c']]],
+ ['ef_5fuart_5fsetprescaler_94',['EF_UART_setPrescaler',['../_e_f___u_a_r_t_8c.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c']]],
+ ['ef_5fuart_5fsetrxfifothreshold_95',['EF_UART_setRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a8a2767ea0edab0500745dde177c1e58c',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae7559449b86af3339f32eb9f60da7342',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
+ ['ef_5fuart_5fsettimeoutbits_96',['EF_UART_setTimeoutBits',['../_e_f___u_a_r_t_8c.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fsettwostopbitsselect_97',['EF_UART_setTwoStopBitsSelect',['../_e_f___u_a_r_t_8c.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c']]],
+ ['ef_5fuart_5fsettxfifothreshold_98',['EF_UART_setTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a30ba41191c67b5242173320ab54e1205',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aece15f8d4c46af75f44d94abb3018080',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
+ ['ef_5fuart_5fspaceavailable_99',['EF_UART_spaceAvailable',['../_e_f___u_a_r_t_8c.html#a7739739a5ceeadcf591f3b387c729d0c',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *TXB_flag): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a26804aec34f642578f9b6243fd16f277',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *flag): EF_UART.c']]],
+ ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fbit_100',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#a4d36a0d56e4c71facb77edf936c5c1be',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fmask_101',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#af62b4e21b6b8f13f76fe7a01b9abc46c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fbit_102',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#a32bdc59657c35d0612e6e66fe760adc7',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fmask_103',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#aa1b5bca4b8333cf38e5a36abd61805f5',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_104',['EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aad9c71b2e065a1bc005853521e584cf7',1,'EF_UART.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_105',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#a2cb10104d58a678696601c2eb7cdb17c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_106',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a21fe71b2983c43632eba11aeccbffcb0',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftxb_5fflag_107',['EF_UART_TXB_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a1d10765fcb44dabc4653269f5f45d7e0',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftxe_5fflag_108',['EF_UART_TXE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#af0ef9bb61d418f4ec8031e74ac1374f3',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftype_109',['EF_UART_TYPE',['../_e_f___u_a_r_t__regs_8h.html#ae6e04bb01bfd86ba243d7502c0afedbf',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftype_5fptr_110',['EF_UART_TYPE_PTR',['../_e_f___u_a_r_t__regs_8h.html#ab605c9cde76c27dd58ec6cf73ca70893',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fwritechar_111',['EF_UART_writeChar',['../_e_f___u_a_r_t_8c.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c']]],
+ ['ef_5fuart_5fwritechararr_112',['EF_UART_writeCharArr',['../_e_f___u_a_r_t_8c.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c']]],
+ ['ef_5fuart_5fwritecharnonblocking_113',['EF_UART_writeCharNonBlocking',['../_e_f___u_a_r_t_8c.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c']]],
+ ['even_114',['EVEN',['../_e_f___u_a_r_t_8h.html#aab5cbb4a185bfe65a14e19beeaba4f10a8487756fbc720579906f0ae1738f0fcc',1,'EF_UART.h']]],
+ ['example_5fuart_5fbase_5faddress_115',['Example_UART_BASE_ADDRESS',['../_e_f___u_a_r_t__example_8c.html#a245442e9ecffcadcce85a5cd86e9ed91',1,'EF_UART_example.c']]]
];
diff --git a/docs/doxygen/html/search/all_6.js b/docs/doxygen/html/search/all_6.js
index 2bbaffe..66d779d 100644
--- a/docs/doxygen/html/search/all_6.js
+++ b/docs/doxygen/html/search/all_6.js
@@ -1,6 +1,5 @@
var searchData=
[
- ['main_0',['main',['../example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'example.c']]],
- ['match_1',['MATCH',['../struct___e_f___u_a_r_t___t_y_p_e__.html#aa4c42f2e242b0eca1910fb9584e1284f',1,'_EF_UART_TYPE_']]],
- ['mis_2',['MIS',['../struct___e_f___u_a_r_t___t_y_p_e__.html#a6cad1b7265a8f8c8b5e71c700a1df06b',1,'_EF_UART_TYPE_']]]
+ ['match_0',['MATCH',['../struct___e_f___u_a_r_t___t_y_p_e__.html#aa4c42f2e242b0eca1910fb9584e1284f',1,'_EF_UART_TYPE_']]],
+ ['mis_1',['MIS',['../struct___e_f___u_a_r_t___t_y_p_e__.html#a6cad1b7265a8f8c8b5e71c700a1df06b',1,'_EF_UART_TYPE_']]]
];
diff --git a/docs/doxygen/html/search/all_d.js b/docs/doxygen/html/search/all_d.js
index c6f1cc6..324b326 100644
--- a/docs/doxygen/html/search/all_d.js
+++ b/docs/doxygen/html/search/all_d.js
@@ -1,6 +1,5 @@
var searchData=
[
- ['uart0_0',['UART0',['../example_8c.html#a0508661f121639ffdee7de2353a0def2',1,'example.c']]],
- ['uart_5finit_1',['UART_Init',['../example_8c.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'example.c']]],
- ['uart_5freceive_2',['UART_Receive',['../example_8c.html#a0bb4c33d9a6330d0c224a2cd7e2b7ab2',1,'example.c']]]
+ ['uart0_0',['UART0',['../_e_f___u_a_r_t__example_8c.html#a0508661f121639ffdee7de2353a0def2',1,'EF_UART_example.c']]],
+ ['uart_5finit_1',['UART_Init',['../_e_f___u_a_r_t_8c.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'UART_Init(EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'UART_Init(EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold): EF_UART.c']]]
];
diff --git a/docs/doxygen/html/search/defines_1.js b/docs/doxygen/html/search/defines_1.js
index e8aad85..e3f85eb 100644
--- a/docs/doxygen/html/search/defines_1.js
+++ b/docs/doxygen/html/search/defines_1.js
@@ -32,32 +32,33 @@ var searchData=
['ef_5fuart_5fctrl_5freg_5ftxen_5fmask_29',['EF_UART_CTRL_REG_TXEN_MASK',['../_e_f___u_a_r_t__regs_8h.html#a4b8b5bd1caaa4e1f65da544132cac877',1,'EF_UART_regs.h']]],
['ef_5fuart_5fdatalength_5fmax_5fvalue_30',['EF_UART_DataLength_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a600c1602d5dcbe87cbc6ae8d015b2384',1,'EF_UART.h']]],
['ef_5fuart_5fdatalength_5fmin_5fvalue_31',['EF_UART_DataLength_MIN_VALUE',['../_e_f___u_a_r_t_8h.html#ad037e6ec02fdbc1ac83387687b690cb5',1,'EF_UART.h']]],
- ['ef_5fuart_5ffe_5fflag_32',['EF_UART_FE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aafc66529a3139c689109d2406ed67a57',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fic_5freg_5fmax_5fvalue_33',['EF_UART_IC_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a056fa4df77234c4221790bbefd6cd974',1,'EF_UART.h']]],
- ['ef_5fuart_5fim_5freg_5fmax_5fvalue_34',['EF_UART_IM_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#ac5ebf20bf24247905b19e2cb2060a457',1,'EF_UART.h']]],
- ['ef_5fuart_5fmatch_5fflag_35',['EF_UART_MATCH_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5f6a28e7e7c0693a5d922ab8788d70c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fmatch_5freg_5fmax_5fvalue_36',['EF_UART_MATCH_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aa65fa5d0b6a628fae152ea7013052318',1,'EF_UART.h']]],
- ['ef_5fuart_5for_5fflag_37',['EF_UART_OR_FLAG',['../_e_f___u_a_r_t__regs_8h.html#ad2021fcd6ecdc551490d95ff8a2227f4',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5fpr_5freg_5fmax_5fvalue_38',['EF_UART_PR_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a482ad61b42cd1ab32b3d69e7fc2fbf5d',1,'EF_UART.h']]],
- ['ef_5fuart_5fpre_5fflag_39',['EF_UART_PRE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a3cff4fc63e9ab01bad003a962a6d3938',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frto_5fflag_40',['EF_UART_RTO_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5b304f625110ba9a40b9fb5d0f22928',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fbit_41',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#ae2c3c80712f43d3efef03601ed583a2e',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fmask_42',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#a1959835954e2643cb04ab8b6337500cc',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fbit_43',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#af97f793bc90ec0557b0366f49ed39768',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fmask_44',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3373791334179d5030fc3901e9cc234d',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_45',['EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a7749200841ca06b85560cdcce6143c0f',1,'EF_UART.h']]],
- ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_46',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#adfa08c57c518af19d91b3386f5f5f48e',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_47',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3519d1b3ce36f9ffd11094e6906d02f3',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frxa_5fflag_48',['EF_UART_RXA_FLAG',['../_e_f___u_a_r_t__regs_8h.html#afcc839803a3e147726c4d0ff8aa631ac',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5frxf_5fflag_49',['EF_UART_RXF_FLAG',['../_e_f___u_a_r_t__regs_8h.html#abdbd275b9e49d27fc0631f3db144626c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fbit_50',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#a4d36a0d56e4c71facb77edf936c5c1be',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fmask_51',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#af62b4e21b6b8f13f76fe7a01b9abc46c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fbit_52',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#a32bdc59657c35d0612e6e66fe760adc7',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fmask_53',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#aa1b5bca4b8333cf38e5a36abd61805f5',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_54',['EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aad9c71b2e065a1bc005853521e584cf7',1,'EF_UART.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_55',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#a2cb10104d58a678696601c2eb7cdb17c',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_56',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a21fe71b2983c43632eba11aeccbffcb0',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftxb_5fflag_57',['EF_UART_TXB_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a1d10765fcb44dabc4653269f5f45d7e0',1,'EF_UART_regs.h']]],
- ['ef_5fuart_5ftxe_5fflag_58',['EF_UART_TXE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#af0ef9bb61d418f4ec8031e74ac1374f3',1,'EF_UART_regs.h']]],
- ['example_5fuart_5fbase_5faddress_59',['Example_UART_BASE_ADDRESS',['../example_8c.html#a245442e9ecffcadcce85a5cd86e9ed91',1,'example.c']]]
+ ['ef_5fuart_5fexample_5fc_32',['EF_UART_EXAMPLE_C',['../_e_f___u_a_r_t__example_8c.html#ac2f4a83425438348a71d343432ecdf37',1,'EF_UART_example.c']]],
+ ['ef_5fuart_5ffe_5fflag_33',['EF_UART_FE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aafc66529a3139c689109d2406ed67a57',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fic_5freg_5fmax_5fvalue_34',['EF_UART_IC_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a056fa4df77234c4221790bbefd6cd974',1,'EF_UART.h']]],
+ ['ef_5fuart_5fim_5freg_5fmax_5fvalue_35',['EF_UART_IM_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#ac5ebf20bf24247905b19e2cb2060a457',1,'EF_UART.h']]],
+ ['ef_5fuart_5fmatch_5fflag_36',['EF_UART_MATCH_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5f6a28e7e7c0693a5d922ab8788d70c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fmatch_5freg_5fmax_5fvalue_37',['EF_UART_MATCH_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aa65fa5d0b6a628fae152ea7013052318',1,'EF_UART.h']]],
+ ['ef_5fuart_5for_5fflag_38',['EF_UART_OR_FLAG',['../_e_f___u_a_r_t__regs_8h.html#ad2021fcd6ecdc551490d95ff8a2227f4',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5fpr_5freg_5fmax_5fvalue_39',['EF_UART_PR_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a482ad61b42cd1ab32b3d69e7fc2fbf5d',1,'EF_UART.h']]],
+ ['ef_5fuart_5fpre_5fflag_40',['EF_UART_PRE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a3cff4fc63e9ab01bad003a962a6d3938',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frto_5fflag_41',['EF_UART_RTO_FLAG',['../_e_f___u_a_r_t__regs_8h.html#aa5b304f625110ba9a40b9fb5d0f22928',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fbit_42',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#ae2c3c80712f43d3efef03601ed583a2e',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fflush_5freg_5fflush_5fmask_43',['EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#a1959835954e2643cb04ab8b6337500cc',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fbit_44',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#af97f793bc90ec0557b0366f49ed39768',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5flevel_5freg_5flevel_5fmask_45',['EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3373791334179d5030fc3901e9cc234d',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_46',['EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#a7749200841ca06b85560cdcce6143c0f',1,'EF_UART.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_47',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#adfa08c57c518af19d91b3386f5f5f48e',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_48',['EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a3519d1b3ce36f9ffd11094e6906d02f3',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frxa_5fflag_49',['EF_UART_RXA_FLAG',['../_e_f___u_a_r_t__regs_8h.html#afcc839803a3e147726c4d0ff8aa631ac',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5frxf_5fflag_50',['EF_UART_RXF_FLAG',['../_e_f___u_a_r_t__regs_8h.html#abdbd275b9e49d27fc0631f3db144626c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fbit_51',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT',['../_e_f___u_a_r_t__regs_8h.html#a4d36a0d56e4c71facb77edf936c5c1be',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fflush_5freg_5fflush_5fmask_52',['EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK',['../_e_f___u_a_r_t__regs_8h.html#af62b4e21b6b8f13f76fe7a01b9abc46c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fbit_53',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT',['../_e_f___u_a_r_t__regs_8h.html#a32bdc59657c35d0612e6e66fe760adc7',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5flevel_5freg_5flevel_5fmask_54',['EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK',['../_e_f___u_a_r_t__regs_8h.html#aa1b5bca4b8333cf38e5a36abd61805f5',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fmax_5fvalue_55',['EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE',['../_e_f___u_a_r_t_8h.html#aad9c71b2e065a1bc005853521e584cf7',1,'EF_UART.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fbit_56',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT',['../_e_f___u_a_r_t__regs_8h.html#a2cb10104d58a678696601c2eb7cdb17c',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftx_5ffifo_5fthreshold_5freg_5fthreshold_5fmask_57',['EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK',['../_e_f___u_a_r_t__regs_8h.html#a21fe71b2983c43632eba11aeccbffcb0',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftxb_5fflag_58',['EF_UART_TXB_FLAG',['../_e_f___u_a_r_t__regs_8h.html#a1d10765fcb44dabc4653269f5f45d7e0',1,'EF_UART_regs.h']]],
+ ['ef_5fuart_5ftxe_5fflag_59',['EF_UART_TXE_FLAG',['../_e_f___u_a_r_t__regs_8h.html#af0ef9bb61d418f4ec8031e74ac1374f3',1,'EF_UART_regs.h']]],
+ ['example_5fuart_5fbase_5faddress_60',['Example_UART_BASE_ADDRESS',['../_e_f___u_a_r_t__example_8c.html#a245442e9ecffcadcce85a5cd86e9ed91',1,'EF_UART_example.c']]]
];
diff --git a/docs/doxygen/html/search/defines_3.js b/docs/doxygen/html/search/defines_3.js
index 3dcb6e4..6664905 100644
--- a/docs/doxygen/html/search/defines_3.js
+++ b/docs/doxygen/html/search/defines_3.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['uart0_0',['UART0',['../example_8c.html#a0508661f121639ffdee7de2353a0def2',1,'example.c']]]
+ ['uart0_0',['UART0',['../_e_f___u_a_r_t__example_8c.html#a0508661f121639ffdee7de2353a0def2',1,'EF_UART_example.c']]]
];
diff --git a/docs/doxygen/html/search/files_0.js b/docs/doxygen/html/search/files_0.js
index c5cfc13..1c1bf73 100644
--- a/docs/doxygen/html/search/files_0.js
+++ b/docs/doxygen/html/search/files_0.js
@@ -3,6 +3,7 @@ var searchData=
['ef_5fdriver_5fcommon_2eh_0',['EF_Driver_Common.h',['../_e_f___driver___common_8h.html',1,'']]],
['ef_5fuart_2ec_1',['EF_UART.c',['../_e_f___u_a_r_t_8c.html',1,'']]],
['ef_5fuart_2eh_2',['EF_UART.h',['../_e_f___u_a_r_t_8h.html',1,'']]],
- ['ef_5fuart_5fregs_2eh_3',['EF_UART_regs.h',['../_e_f___u_a_r_t__regs_8h.html',1,'']]],
- ['example_2ec_4',['example.c',['../example_8c.html',1,'']]]
+ ['ef_5fuart_5fexample_2ec_3',['EF_UART_example.c',['../_e_f___u_a_r_t__example_8c.html',1,'']]],
+ ['ef_5fuart_5fexample_2eh_4',['EF_UART_example.h',['../_e_f___u_a_r_t__example_8h.html',1,'']]],
+ ['ef_5fuart_5fregs_2eh_5',['EF_UART_regs.h',['../_e_f___u_a_r_t__regs_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/functions_0.js b/docs/doxygen/html/search/functions_0.js
index 8ce99a9..b281c0c 100644
--- a/docs/doxygen/html/search/functions_0.js
+++ b/docs/doxygen/html/search/functions_0.js
@@ -12,35 +12,37 @@ var searchData=
['ef_5fuart_5fenableloopback_9',['EF_UART_enableLoopBack',['../_e_f___u_a_r_t_8c.html#a8dbf6fd5cdc6e99a3e17486c124d0d1d',1,'EF_UART_enableLoopBack(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8dbf6fd5cdc6e99a3e17486c124d0d1d',1,'EF_UART_enableLoopBack(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fenablerx_10',['EF_UART_enableRx',['../_e_f___u_a_r_t_8c.html#a8fe185c295fdf22ad7f5ab020138e95f',1,'EF_UART_enableRx(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8fe185c295fdf22ad7f5ab020138e95f',1,'EF_UART_enableRx(EF_UART_TYPE_PTR uart): EF_UART.c']]],
['ef_5fuart_5fenabletx_11',['EF_UART_enableTx',['../_e_f___u_a_r_t_8c.html#a11caaf87ef28a637bfd825208eb09c18',1,'EF_UART_enableTx(EF_UART_TYPE_PTR uart): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a11caaf87ef28a637bfd825208eb09c18',1,'EF_UART_enableTx(EF_UART_TYPE_PTR uart): EF_UART.c']]],
- ['ef_5fuart_5fgetconfig_12',['EF_UART_getConfig',['../_e_f___u_a_r_t_8c.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c']]],
- ['ef_5fuart_5fgetctrl_13',['EF_UART_getCTRL',['../_e_f___u_a_r_t_8c.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c']]],
- ['ef_5fuart_5fgetim_14',['EF_UART_getIM',['../_e_f___u_a_r_t_8c.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c']]],
- ['ef_5fuart_5fgetmatchdata_15',['EF_UART_getMatchData',['../_e_f___u_a_r_t_8c.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c']]],
- ['ef_5fuart_5fgetmis_16',['EF_UART_getMIS',['../_e_f___u_a_r_t_8c.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c']]],
- ['ef_5fuart_5fgetparitymode_17',['EF_UART_getParityMode',['../_e_f___u_a_r_t_8c.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c']]],
- ['ef_5fuart_5fgetprescaler_18',['EF_UART_getPrescaler',['../_e_f___u_a_r_t_8c.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c']]],
- ['ef_5fuart_5fgetris_19',['EF_UART_getRIS',['../_e_f___u_a_r_t_8c.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c']]],
- ['ef_5fuart_5fgetrxcount_20',['EF_UART_getRxCount',['../_e_f___u_a_r_t_8c.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c']]],
- ['ef_5fuart_5fgetrxfifothreshold_21',['EF_UART_getRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c']]],
- ['ef_5fuart_5fgettxcount_22',['EF_UART_getTxCount',['../_e_f___u_a_r_t_8c.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c']]],
- ['ef_5fuart_5fgettxfifothreshold_23',['EF_UART_getTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c']]],
- ['ef_5fuart_5freadchar_24',['EF_UART_readChar',['../_e_f___u_a_r_t_8c.html#aed92f78ad479144a2e9bc7169f2a9850',1,'EF_UART_readChar(EF_UART_TYPE_PTR uart, char *RXDATA_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#abda4e085b80f004761b77dbf3f0450e6',1,'EF_UART_readChar(EF_UART_TYPE_PTR uar, char *RXDATA_value): EF_UART.c']]],
- ['ef_5fuart_5freadcharnonblocking_25',['EF_UART_readCharNonBlocking',['../_e_f___u_a_r_t_8c.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c']]],
- ['ef_5fuart_5fsetconfig_26',['EF_UART_setConfig',['../_e_f___u_a_r_t_8c.html#a97261ae27ea5d029ecab9b25f2f45ac9',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7abd365f1081dd30bc202b673851f7b7',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t config): EF_UART.c']]],
- ['ef_5fuart_5fsetctrl_27',['EF_UART_setCTRL',['../_e_f___u_a_r_t_8c.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fsetdatasize_28',['EF_UART_setDataSize',['../_e_f___u_a_r_t_8c.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fsetgclkenable_29',['EF_UART_setGclkEnable',['../_e_f___u_a_r_t_8c.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fseticr_30',['EF_UART_setICR',['../_e_f___u_a_r_t_8c.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
- ['ef_5fuart_5fsetim_31',['EF_UART_setIM',['../_e_f___u_a_r_t_8c.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
- ['ef_5fuart_5fsetmatchdata_32',['EF_UART_setMatchData',['../_e_f___u_a_r_t_8c.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c']]],
- ['ef_5fuart_5fsetparitytype_33',['EF_UART_setParityType',['../_e_f___u_a_r_t_8c.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c']]],
- ['ef_5fuart_5fsetprescaler_34',['EF_UART_setPrescaler',['../_e_f___u_a_r_t_8c.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c']]],
- ['ef_5fuart_5fsetrxfifothreshold_35',['EF_UART_setRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a8a2767ea0edab0500745dde177c1e58c',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae7559449b86af3339f32eb9f60da7342',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
- ['ef_5fuart_5fsettimeoutbits_36',['EF_UART_setTimeoutBits',['../_e_f___u_a_r_t_8c.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
- ['ef_5fuart_5fsettwostopbitsselect_37',['EF_UART_setTwoStopBitsSelect',['../_e_f___u_a_r_t_8c.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c']]],
- ['ef_5fuart_5fsettxfifothreshold_38',['EF_UART_setTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a30ba41191c67b5242173320ab54e1205',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aece15f8d4c46af75f44d94abb3018080',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
- ['ef_5fuart_5fspaceavailable_39',['EF_UART_spaceAvailable',['../_e_f___u_a_r_t_8c.html#a7739739a5ceeadcf591f3b387c729d0c',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *TXB_flag): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a26804aec34f642578f9b6243fd16f277',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *flag): EF_UART.c']]],
- ['ef_5fuart_5fwritechar_40',['EF_UART_writeChar',['../_e_f___u_a_r_t_8c.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c']]],
- ['ef_5fuart_5fwritechararr_41',['EF_UART_writeCharArr',['../_e_f___u_a_r_t_8c.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c']]],
- ['ef_5fuart_5fwritecharnonblocking_42',['EF_UART_writeCharNonBlocking',['../_e_f___u_a_r_t_8c.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c']]]
+ ['ef_5fuart_5fexample_12',['EF_UART_example',['../_e_f___u_a_r_t__example_8c.html#a8451a75f6339b51e6239c6c4d01ee4e0',1,'EF_UART_example(void): EF_UART_example.c'],['../_e_f___u_a_r_t__example_8h.html#a8451a75f6339b51e6239c6c4d01ee4e0',1,'EF_UART_example(void): EF_UART_example.c']]],
+ ['ef_5fuart_5fgetconfig_13',['EF_UART_getConfig',['../_e_f___u_a_r_t_8c.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#afad923241f7414fe1292101d185d0c75',1,'EF_UART_getConfig(EF_UART_TYPE_PTR uart, uint32_t *CFG_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetctrl_14',['EF_UART_getCTRL',['../_e_f___u_a_r_t_8c.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9870f89be83da209c6823fe725ed492e',1,'EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetim_15',['EF_UART_getIM',['../_e_f___u_a_r_t_8c.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ab22694c6e2d02fc25daac570b70ef8f1',1,'EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetmatchdata_16',['EF_UART_getMatchData',['../_e_f___u_a_r_t_8c.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a559c00c5b1d96bcb0784e0449071f4bb',1,'EF_UART_getMatchData(EF_UART_TYPE_PTR uart, uint32_t *MATCH_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetmis_17',['EF_UART_getMIS',['../_e_f___u_a_r_t_8c.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0ff41852bf2c3a32d25864823da6a508',1,'EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetparitymode_18',['EF_UART_getParityMode',['../_e_f___u_a_r_t_8c.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a99a9c66e92fb0233fb7cf31e6c6921f1',1,'EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode): EF_UART.c']]],
+ ['ef_5fuart_5fgetprescaler_19',['EF_UART_getPrescaler',['../_e_f___u_a_r_t_8c.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aa5874369ddd7767b26a076726d585235',1,'EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetris_20',['EF_UART_getRIS',['../_e_f___u_a_r_t_8c.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a81943fbc40226420642143805f95e991',1,'EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetrxcount_21',['EF_UART_getRxCount',['../_e_f___u_a_r_t_8c.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa9a26fa27e5b5fc5c8039103abc1ed7',1,'EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value): EF_UART.c']]],
+ ['ef_5fuart_5fgetrxfifothreshold_22',['EF_UART_getRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7b416fd3385eb5b3ee34eb09ea0de8d2',1,'EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value): EF_UART.c']]],
+ ['ef_5fuart_5fgettxcount_23',['EF_UART_getTxCount',['../_e_f___u_a_r_t_8c.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acd160a7725a4b3fb675dcebeda8776d5',1,'EF_UART_getTxCount(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_LEVEL_value): EF_UART.c']]],
+ ['ef_5fuart_5fgettxfifothreshold_24',['EF_UART_getTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a9844c9c7921a2187ca86bead858c8c02',1,'EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value): EF_UART.c']]],
+ ['ef_5fuart_5freadchar_25',['EF_UART_readChar',['../_e_f___u_a_r_t_8c.html#aed92f78ad479144a2e9bc7169f2a9850',1,'EF_UART_readChar(EF_UART_TYPE_PTR uart, char *RXDATA_value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#abda4e085b80f004761b77dbf3f0450e6',1,'EF_UART_readChar(EF_UART_TYPE_PTR uar, char *RXDATA_value): EF_UART.c']]],
+ ['ef_5fuart_5freadchararr_26',['EF_UART_readCharArr',['../_e_f___u_a_r_t_8c.html#acb379fe3cc63f5e2eea43522c39823f7',1,'EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#acb379fe3cc63f5e2eea43522c39823f7',1,'EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size): EF_UART.c']]],
+ ['ef_5fuart_5freadcharnonblocking_27',['EF_UART_readCharNonBlocking',['../_e_f___u_a_r_t_8c.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aaa93d9c62ca6e64a622bb32e86fb2dc0',1,'EF_UART_readCharNonBlocking(EF_UART_TYPE_PTR uart, char *RXDATA_value, bool *data_available): EF_UART.c']]],
+ ['ef_5fuart_5fsetconfig_28',['EF_UART_setConfig',['../_e_f___u_a_r_t_8c.html#a97261ae27ea5d029ecab9b25f2f45ac9',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7abd365f1081dd30bc202b673851f7b7',1,'EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t config): EF_UART.c']]],
+ ['ef_5fuart_5fsetctrl_29',['EF_UART_setCTRL',['../_e_f___u_a_r_t_8c.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad36fee036e144937af3eed59eea101c6',1,'EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fsetdatasize_30',['EF_UART_setDataSize',['../_e_f___u_a_r_t_8c.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a04a859ae5492ec11e9f3b418337148e1',1,'EF_UART_setDataSize(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fsetgclkenable_31',['EF_UART_setGclkEnable',['../_e_f___u_a_r_t_8c.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a5b00ddd7df5f72886ea559da57a1b2bd',1,'EF_UART_setGclkEnable(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fseticr_32',['EF_UART_setICR',['../_e_f___u_a_r_t_8c.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a7ecbcf6bc73a4a3392648372441a6133',1,'EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
+ ['ef_5fuart_5fsetim_33',['EF_UART_setIM',['../_e_f___u_a_r_t_8c.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad62de52cc6d11bb10dfdc275d899bb0e',1,'EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask): EF_UART.c']]],
+ ['ef_5fuart_5fsetmatchdata_34',['EF_UART_setMatchData',['../_e_f___u_a_r_t_8c.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#af275d224f7dcde400258b8d93e1ed2ce',1,'EF_UART_setMatchData(EF_UART_TYPE_PTR uart, uint32_t matchData): EF_UART.c']]],
+ ['ef_5fuart_5fsetparitytype_35',['EF_UART_setParityType',['../_e_f___u_a_r_t_8c.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a3af979ea01c716d9b6ca923b92cc5c31',1,'EF_UART_setParityType(EF_UART_TYPE_PTR uart, enum parity_type parity): EF_UART.c']]],
+ ['ef_5fuart_5fsetprescaler_36',['EF_UART_setPrescaler',['../_e_f___u_a_r_t_8c.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1184834b408cdeed94623c691068a352',1,'EF_UART_setPrescaler(EF_UART_TYPE_PTR uart, uint32_t prescaler): EF_UART.c']]],
+ ['ef_5fuart_5fsetrxfifothreshold_37',['EF_UART_setRxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a8a2767ea0edab0500745dde177c1e58c',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae7559449b86af3339f32eb9f60da7342',1,'EF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
+ ['ef_5fuart_5fsettimeoutbits_38',['EF_UART_setTimeoutBits',['../_e_f___u_a_r_t_8c.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ad18a6e0c7701bdc66b483b1c53a3581d',1,'EF_UART_setTimeoutBits(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c']]],
+ ['ef_5fuart_5fsettwostopbitsselect_39',['EF_UART_setTwoStopBitsSelect',['../_e_f___u_a_r_t_8c.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ae2336d17bb87f77416fc9c6871b7cbdb',1,'EF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTR uart, bool is_two_bits): EF_UART.c']]],
+ ['ef_5fuart_5fsettxfifothreshold_40',['EF_UART_setTxFIFOThreshold',['../_e_f___u_a_r_t_8c.html#a30ba41191c67b5242173320ab54e1205',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t value): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#aece15f8d4c46af75f44d94abb3018080',1,'EF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t threshold): EF_UART.c']]],
+ ['ef_5fuart_5fspaceavailable_41',['EF_UART_spaceAvailable',['../_e_f___u_a_r_t_8c.html#a7739739a5ceeadcf591f3b387c729d0c',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *TXB_flag): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a26804aec34f642578f9b6243fd16f277',1,'EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *flag): EF_UART.c']]],
+ ['ef_5fuart_5fwritechar_42',['EF_UART_writeChar',['../_e_f___u_a_r_t_8c.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#ace1db9bbc3b092890acff854cec1aa77',1,'EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data): EF_UART.c']]],
+ ['ef_5fuart_5fwritechararr_43',['EF_UART_writeCharArr',['../_e_f___u_a_r_t_8c.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a0f9ad65cbfe136ad4c4080612d578536',1,'EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr): EF_UART.c']]],
+ ['ef_5fuart_5fwritecharnonblocking_44',['EF_UART_writeCharNonBlocking',['../_e_f___u_a_r_t_8c.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a8091314203111b165d1bad624159f8ba',1,'EF_UART_writeCharNonBlocking(EF_UART_TYPE_PTR uart, char data, bool *data_sent): EF_UART.c']]]
];
diff --git a/docs/doxygen/html/search/functions_1.js b/docs/doxygen/html/search/functions_1.js
index ae3034b..da47b7f 100644
--- a/docs/doxygen/html/search/functions_1.js
+++ b/docs/doxygen/html/search/functions_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['main_0',['main',['../example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'example.c']]]
+ ['uart_5finit_0',['UART_Init',['../_e_f___u_a_r_t_8c.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'UART_Init(EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'UART_Init(EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold): EF_UART.c']]]
];
diff --git a/docs/doxygen/html/search/functions_2.js b/docs/doxygen/html/search/functions_2.js
index 735307d..da47b7f 100644
--- a/docs/doxygen/html/search/functions_2.js
+++ b/docs/doxygen/html/search/functions_2.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['uart_5finit_0',['UART_Init',['../example_8c.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'example.c']]],
- ['uart_5freceive_1',['UART_Receive',['../example_8c.html#a0bb4c33d9a6330d0c224a2cd7e2b7ab2',1,'example.c']]]
+ ['uart_5finit_0',['UART_Init',['../_e_f___u_a_r_t_8c.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'UART_Init(EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold): EF_UART.c'],['../_e_f___u_a_r_t_8h.html#a1dc3757c8ca6e8725ab78bd72373ec6b',1,'UART_Init(EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold): EF_UART.c']]]
];
diff --git a/docs/doxygen/html/search/searchdata.js b/docs/doxygen/html/search/searchdata.js
index 9657516..4ea21c7 100644
--- a/docs/doxygen/html/search/searchdata.js
+++ b/docs/doxygen/html/search/searchdata.js
@@ -3,7 +3,7 @@ var indexSectionsWithContent =
0: "_acegimnoprstu",
1: "_",
2: "er",
- 3: "emu",
+ 3: "eu",
4: "cgimprt",
5: "e",
6: "p",
diff --git a/docs/doxygen/latex/_e_f___u_a_r_t_8c.tex b/docs/doxygen/latex/_e_f___u_a_r_t_8c.tex
index 202509f..1cf5778 100644
--- a/docs/doxygen/latex/_e_f___u_a_r_t_8c.tex
+++ b/docs/doxygen/latex/_e_f___u_a_r_t_8c.tex
@@ -99,7 +99,11 @@
\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8c_a99a9c66e92fb0233fb7cf31e6c6921f1}{EF\+\_\+\+UART\+\_\+get\+Parity\+Mode}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, uint32\+\_\+t $\ast$parity\+\_\+mode)
\begin{DoxyCompactList}\small\item\em This function return the parity mode of the UART. \end{DoxyCompactList}\item
\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8c_ad9d841da9b4114560195d08af86a4b4a}{EF\+\_\+\+UART\+\_\+busy}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, bool $\ast$busy\+\_\+flag)
-\begin{DoxyCompactList}\small\item\em This function checks id the UART is busy. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\begin{DoxyCompactList}\small\item\em This function checks id the UART is busy. \end{DoxyCompactList}\item
+\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\+\_\+\+Init}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, uint32\+\_\+t baud\+\_\+rate, uint32\+\_\+t bus\+\_\+clock, uint32\+\_\+t data\+\_\+bits, bool two\+\_\+stop\+\_\+bits, enum \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10}{parity\+\_\+type}} parity, uint32\+\_\+t timeout, uint32\+\_\+t rx\+\_\+threshold, uint32\+\_\+t tx\+\_\+threshold)
+\begin{DoxyCompactList}\small\item\em This function initializes the UART with the specified parameters. \end{DoxyCompactList}\item
+\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}{EF\+\_\+\+UART\+\_\+read\+Char\+Arr}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, char $\ast$buffer, uint32\+\_\+t buffer\+\_\+size)
+\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
@@ -627,6 +631,32 @@
\begin{DoxyReturn}{Returns}
status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
\end{DoxyReturn}
+\mbox{\Hypertarget{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}\label{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}}
+\index{EF\_UART.c@{EF\_UART.c}!EF\_UART\_readCharArr@{EF\_UART\_readCharArr}}
+\index{EF\_UART\_readCharArr@{EF\_UART\_readCharArr}!EF\_UART.c@{EF\_UART.c}}
+\doxysubsubsection{\texorpdfstring{EF\_UART\_readCharArr()}{EF\_UART\_readCharArr()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} EF\+\_\+\+UART\+\_\+read\+Char\+Arr (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}}}]{uart, }\item[{char $\ast$}]{buffer, }\item[{uint32\+\_\+t}]{buffer\+\_\+size }\end{DoxyParamCaption})}
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size. \begin{DoxyNote}{Note}
+This is a blocking function and can only terminate under the following conditions\+:
+\begin{DoxyEnumerate}
+\item The buffer is full
+\item A \char`\"{}\textbackslash{}n\char`\"{} character is received
+\item An error is detected
+\end{DoxyEnumerate}
+\end{DoxyNote}
+
+\begin{DoxyParams}[1]{Parameters}
+\mbox{\texttt{ in}} & {\em uart} & An \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} , which points to the base memory address of UART registers. \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ae6e04bb01bfd86ba243d7502c0afedbf}{EF\+\_\+\+UART\+\_\+\+TYPE}} is a structure that contains the UART registers. \\
+\hline
+\mbox{\texttt{ out}} & {\em buffer} & The buffer to store the received message \\
+\hline
+\mbox{\texttt{ in}} & {\em buffer\+\_\+size} & The size of the buffer\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
+\end{DoxyReturn}
\mbox{\Hypertarget{_e_f___u_a_r_t_8c_aaa93d9c62ca6e64a622bb32e86fb2dc0}\label{_e_f___u_a_r_t_8c_aaa93d9c62ca6e64a622bb32e86fb2dc0}}
\index{EF\_UART.c@{EF\_UART.c}!EF\_UART\_readCharNonBlocking@{EF\_UART\_readCharNonBlocking}}
\index{EF\_UART\_readCharNonBlocking@{EF\_UART\_readCharNonBlocking}!EF\_UART.c@{EF\_UART.c}}
@@ -1022,3 +1052,37 @@
\begin{DoxyReturn}{Returns}
status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
\end{DoxyReturn}
+\mbox{\Hypertarget{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}\label{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}}
+\index{EF\_UART.c@{EF\_UART.c}!UART\_Init@{UART\_Init}}
+\index{UART\_Init@{UART\_Init}!EF\_UART.c@{EF\_UART.c}}
+\doxysubsubsection{\texorpdfstring{UART\_Init()}{UART\_Init()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} UART\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}}}]{uart, }\item[{uint32\+\_\+t}]{baud\+\_\+rate, }\item[{uint32\+\_\+t}]{bus\+\_\+clock, }\item[{uint32\+\_\+t}]{data\+\_\+bits, }\item[{bool}]{two\+\_\+stop\+\_\+bits, }\item[{enum \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10}{parity\+\_\+type}}}]{parity, }\item[{uint32\+\_\+t}]{timeout, }\item[{uint32\+\_\+t}]{rx\+\_\+threshold, }\item[{uint32\+\_\+t}]{tx\+\_\+threshold }\end{DoxyParamCaption})}
+
+
+
+This function initializes the UART with the specified parameters.
+
+
+\begin{DoxyParams}[1]{Parameters}
+\mbox{\texttt{ in}} & {\em uart} & An \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} , which points to the base memory address of UART registers. \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ae6e04bb01bfd86ba243d7502c0afedbf}{EF\+\_\+\+UART\+\_\+\+TYPE}} is a structure that contains the UART registers. \\
+\hline
+\mbox{\texttt{ in}} & {\em baud\+\_\+rate} & The baud rate of the UART \\
+\hline
+\mbox{\texttt{ in}} & {\em bus\+\_\+clock} & The bus clock frequency \\
+\hline
+\mbox{\texttt{ in}} & {\em data\+\_\+bits} & The number of data bits \\
+\hline
+\mbox{\texttt{ in}} & {\em two\+\_\+stop\+\_\+bits} & A flag indicating if two stop bits are used \\
+\hline
+\mbox{\texttt{ in}} & {\em parity} & The parity mode \\
+\hline
+\mbox{\texttt{ in}} & {\em timeout} & The receiver timeout \\
+\hline
+\mbox{\texttt{ in}} & {\em rx\+\_\+threshold} & The receive FIFO threshold \\
+\hline
+\mbox{\texttt{ in}} & {\em tx\+\_\+threshold} & The transmit FIFO threshold\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
+\end{DoxyReturn}
diff --git a/docs/doxygen/latex/_e_f___u_a_r_t_8h.tex b/docs/doxygen/latex/_e_f___u_a_r_t_8h.tex
index 647551c..dd95933 100644
--- a/docs/doxygen/latex/_e_f___u_a_r_t_8h.tex
+++ b/docs/doxygen/latex/_e_f___u_a_r_t_8h.tex
@@ -132,7 +132,11 @@
\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8h_a99a9c66e92fb0233fb7cf31e6c6921f1}{EF\+\_\+\+UART\+\_\+get\+Parity\+Mode}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, uint32\+\_\+t $\ast$parity\+\_\+mode)
\begin{DoxyCompactList}\small\item\em This function return the parity mode of the UART. \end{DoxyCompactList}\item
\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8h_a16e75e32fdf3a0dc46f6ca9992750328}{EF\+\_\+\+UART\+\_\+busy}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, bool $\ast$flag)
-\begin{DoxyCompactList}\small\item\em This function checks id the UART is busy. \end{DoxyCompactList}\end{DoxyCompactItemize}
+\begin{DoxyCompactList}\small\item\em This function checks id the UART is busy. \end{DoxyCompactList}\item
+\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8h_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\+\_\+\+Init}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, uint32\+\_\+t baud\+\_\+rate, uint32\+\_\+t bus\+\_\+clock, uint32\+\_\+t data\+\_\+bits, bool two\+\_\+stop\+\_\+bits, enum \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10}{parity\+\_\+type}} parity, uint32\+\_\+t timeout, uint32\+\_\+t rx\+\_\+threshold, uint32\+\_\+t tx\+\_\+threshold)
+\begin{DoxyCompactList}\small\item\em This function initializes the UART with the specified parameters. \end{DoxyCompactList}\item
+\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t_8h_acb379fe3cc63f5e2eea43522c39823f7}{EF\+\_\+\+UART\+\_\+read\+Char\+Arr}} (\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} uart, char $\ast$buffer, uint32\+\_\+t buffer\+\_\+size)
+\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
@@ -751,6 +755,32 @@
\begin{DoxyReturn}{Returns}
status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
\end{DoxyReturn}
+\mbox{\Hypertarget{_e_f___u_a_r_t_8h_acb379fe3cc63f5e2eea43522c39823f7}\label{_e_f___u_a_r_t_8h_acb379fe3cc63f5e2eea43522c39823f7}}
+\index{EF\_UART.h@{EF\_UART.h}!EF\_UART\_readCharArr@{EF\_UART\_readCharArr}}
+\index{EF\_UART\_readCharArr@{EF\_UART\_readCharArr}!EF\_UART.h@{EF\_UART.h}}
+\doxysubsubsection{\texorpdfstring{EF\_UART\_readCharArr()}{EF\_UART\_readCharArr()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} EF\+\_\+\+UART\+\_\+read\+Char\+Arr (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}}}]{uart, }\item[{char $\ast$}]{buffer, }\item[{uint32\+\_\+t}]{buffer\+\_\+size }\end{DoxyParamCaption})}
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size. \begin{DoxyNote}{Note}
+This is a blocking function and can only terminate under the following conditions\+:
+\begin{DoxyEnumerate}
+\item The buffer is full
+\item A \char`\"{}\textbackslash{}n\char`\"{} character is received
+\item An error is detected
+\end{DoxyEnumerate}
+\end{DoxyNote}
+
+\begin{DoxyParams}[1]{Parameters}
+\mbox{\texttt{ in}} & {\em uart} & An \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} , which points to the base memory address of UART registers. \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ae6e04bb01bfd86ba243d7502c0afedbf}{EF\+\_\+\+UART\+\_\+\+TYPE}} is a structure that contains the UART registers. \\
+\hline
+\mbox{\texttt{ out}} & {\em buffer} & The buffer to store the received message \\
+\hline
+\mbox{\texttt{ in}} & {\em buffer\+\_\+size} & The size of the buffer\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
+\end{DoxyReturn}
\mbox{\Hypertarget{_e_f___u_a_r_t_8h_aaa93d9c62ca6e64a622bb32e86fb2dc0}\label{_e_f___u_a_r_t_8h_aaa93d9c62ca6e64a622bb32e86fb2dc0}}
\index{EF\_UART.h@{EF\_UART.h}!EF\_UART\_readCharNonBlocking@{EF\_UART\_readCharNonBlocking}}
\index{EF\_UART\_readCharNonBlocking@{EF\_UART\_readCharNonBlocking}!EF\_UART.h@{EF\_UART.h}}
@@ -1146,3 +1176,37 @@
\begin{DoxyReturn}{Returns}
status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
\end{DoxyReturn}
+\mbox{\Hypertarget{_e_f___u_a_r_t_8h_a1dc3757c8ca6e8725ab78bd72373ec6b}\label{_e_f___u_a_r_t_8h_a1dc3757c8ca6e8725ab78bd72373ec6b}}
+\index{EF\_UART.h@{EF\_UART.h}!UART\_Init@{UART\_Init}}
+\index{UART\_Init@{UART\_Init}!EF\_UART.h@{EF\_UART.h}}
+\doxysubsubsection{\texorpdfstring{UART\_Init()}{UART\_Init()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} UART\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}}}]{uart, }\item[{uint32\+\_\+t}]{baud\+\_\+rate, }\item[{uint32\+\_\+t}]{bus\+\_\+clock, }\item[{uint32\+\_\+t}]{data\+\_\+bits, }\item[{bool}]{two\+\_\+stop\+\_\+bits, }\item[{enum \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10}{parity\+\_\+type}}}]{parity, }\item[{uint32\+\_\+t}]{timeout, }\item[{uint32\+\_\+t}]{rx\+\_\+threshold, }\item[{uint32\+\_\+t}]{tx\+\_\+threshold }\end{DoxyParamCaption})}
+
+
+
+This function initializes the UART with the specified parameters.
+
+
+\begin{DoxyParams}[1]{Parameters}
+\mbox{\texttt{ in}} & {\em uart} & An \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}} , which points to the base memory address of UART registers. \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ae6e04bb01bfd86ba243d7502c0afedbf}{EF\+\_\+\+UART\+\_\+\+TYPE}} is a structure that contains the UART registers. \\
+\hline
+\mbox{\texttt{ in}} & {\em baud\+\_\+rate} & The baud rate of the UART \\
+\hline
+\mbox{\texttt{ in}} & {\em bus\+\_\+clock} & The bus clock frequency \\
+\hline
+\mbox{\texttt{ in}} & {\em data\+\_\+bits} & The number of data bits \\
+\hline
+\mbox{\texttt{ in}} & {\em two\+\_\+stop\+\_\+bits} & A flag indicating if two stop bits are used \\
+\hline
+\mbox{\texttt{ in}} & {\em parity} & The parity mode \\
+\hline
+\mbox{\texttt{ in}} & {\em timeout} & The receiver timeout \\
+\hline
+\mbox{\texttt{ in}} & {\em rx\+\_\+threshold} & The receive FIFO threshold \\
+\hline
+\mbox{\texttt{ in}} & {\em tx\+\_\+threshold} & The transmit FIFO threshold\\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+status A value of type \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \+: returns a success or error code
+\end{DoxyReturn}
diff --git a/docs/doxygen/latex/_e_f___u_a_r_t_8h_source.tex b/docs/doxygen/latex/_e_f___u_a_r_t_8h_source.tex
index b659c53..655da8c 100644
--- a/docs/doxygen/latex/_e_f___u_a_r_t_8h_source.tex
+++ b/docs/doxygen/latex/_e_f___u_a_r_t_8h_source.tex
@@ -233,16 +233,23 @@
\DoxyCodeLine{00547\ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_a16e75e32fdf3a0dc46f6ca9992750328}{EF\_UART\_busy}}(\mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE\_PTR}}\ uart,\ \textcolor{keywordtype}{bool}*\ flag);}
\DoxyCodeLine{00548\ }
\DoxyCodeLine{00549\ }
-\DoxyCodeLine{00550\ }
-\DoxyCodeLine{00551\ \textcolor{comment}{/******************************************************************************}}
-\DoxyCodeLine{00552\ \textcolor{comment}{*\ External\ Variables}}
-\DoxyCodeLine{00553\ \textcolor{comment}{******************************************************************************/}}
-\DoxyCodeLine{00554\ }
-\DoxyCodeLine{00555\ }
-\DoxyCodeLine{00556\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ EF\_UART\_H}}
-\DoxyCodeLine{00557\ }
-\DoxyCodeLine{00558\ \textcolor{comment}{/******************************************************************************}}
-\DoxyCodeLine{00559\ \textcolor{comment}{*\ End\ of\ File}}
-\DoxyCodeLine{00560\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00551\ }
+\DoxyCodeLine{00564\ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\_Init}}(\mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE\_PTR}}\ uart,\ uint32\_t\ baud\_rate,\ uint32\_t\ bus\_clock,\ uint32\_t\ data\_bits,\ \textcolor{keywordtype}{bool}\ two\_stop\_bits,\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10}{parity\_type}}\ parity,\ uint32\_t\ timeout,\ uint32\_t\ rx\_threshold,\ uint32\_t\ tx\_threshold);}
+\DoxyCodeLine{00565\ }
+\DoxyCodeLine{00566\ }
+\DoxyCodeLine{00572\ }
+\DoxyCodeLine{00579\ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_acb379fe3cc63f5e2eea43522c39823f7}{EF\_UART\_readCharArr}}(\mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE\_PTR}}\ uart,\ \textcolor{keywordtype}{char}\ *buffer,\ uint32\_t\ buffer\_size);}
+\DoxyCodeLine{00580\ }
+\DoxyCodeLine{00581\ }
+\DoxyCodeLine{00582\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00583\ \textcolor{comment}{*\ External\ Variables}}
+\DoxyCodeLine{00584\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00585\ }
+\DoxyCodeLine{00586\ }
+\DoxyCodeLine{00587\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ EF\_UART\_H}}
+\DoxyCodeLine{00588\ }
+\DoxyCodeLine{00589\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00590\ \textcolor{comment}{*\ End\ of\ File}}
+\DoxyCodeLine{00591\ \textcolor{comment}{******************************************************************************/}}
\end{DoxyCode}
diff --git a/docs/doxygen/latex/_e_f___u_a_r_t__example_8c.tex b/docs/doxygen/latex/_e_f___u_a_r_t__example_8c.tex
new file mode 100644
index 0000000..e56b62a
--- /dev/null
+++ b/docs/doxygen/latex/_e_f___u_a_r_t__example_8c.tex
@@ -0,0 +1,97 @@
+\hypertarget{_e_f___u_a_r_t__example_8c}{}\doxysection{EF\+\_\+\+UART\+\_\+example.\+c File Reference}
+\label{_e_f___u_a_r_t__example_8c}\index{EF\_UART\_example.c@{EF\_UART\_example.c}}
+
+
+C file containing an example of how to use the UART APIs.
+
+
+{\ttfamily \#include \char`\"{}EF\+\_\+\+UART\+\_\+example.\+h\char`\"{}}\newline
+\doxysubsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\#define \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_ac2f4a83425438348a71d343432ecdf37}{EF\+\_\+\+UART\+\_\+\+EXAMPLE\+\_\+C}}
+\item
+\#define \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a245442e9ecffcadcce85a5cd86e9ed91}{Example\+\_\+\+UART\+\_\+\+BASE\+\_\+\+ADDRESS}}~0x40000000
+\item
+\#define \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}}~((\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}})\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a245442e9ecffcadcce85a5cd86e9ed91}{Example\+\_\+\+UART\+\_\+\+BASE\+\_\+\+ADDRESS}})
+\end{DoxyCompactItemize}
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\+\_\+\+UART\+\_\+example}} (void)
+\begin{DoxyCompactList}\small\item\em Example Usage Example usage\+: \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+C file containing an example of how to use the UART APIs.
+
+C header file containing an example of how to use the UART APIs.
+
+\doxysubsection{Macro Definition Documentation}
+\mbox{\Hypertarget{_e_f___u_a_r_t__example_8c_ac2f4a83425438348a71d343432ecdf37}\label{_e_f___u_a_r_t__example_8c_ac2f4a83425438348a71d343432ecdf37}}
+\index{EF\_UART\_example.c@{EF\_UART\_example.c}!EF\_UART\_EXAMPLE\_C@{EF\_UART\_EXAMPLE\_C}}
+\index{EF\_UART\_EXAMPLE\_C@{EF\_UART\_EXAMPLE\_C}!EF\_UART\_example.c@{EF\_UART\_example.c}}
+\doxysubsubsection{\texorpdfstring{EF\_UART\_EXAMPLE\_C}{EF\_UART\_EXAMPLE\_C}}
+{\footnotesize\ttfamily \#define EF\+\_\+\+UART\+\_\+\+EXAMPLE\+\_\+C}
+
+\mbox{\Hypertarget{_e_f___u_a_r_t__example_8c_a245442e9ecffcadcce85a5cd86e9ed91}\label{_e_f___u_a_r_t__example_8c_a245442e9ecffcadcce85a5cd86e9ed91}}
+\index{EF\_UART\_example.c@{EF\_UART\_example.c}!Example\_UART\_BASE\_ADDRESS@{Example\_UART\_BASE\_ADDRESS}}
+\index{Example\_UART\_BASE\_ADDRESS@{Example\_UART\_BASE\_ADDRESS}!EF\_UART\_example.c@{EF\_UART\_example.c}}
+\doxysubsubsection{\texorpdfstring{Example\_UART\_BASE\_ADDRESS}{Example\_UART\_BASE\_ADDRESS}}
+{\footnotesize\ttfamily \#define Example\+\_\+\+UART\+\_\+\+BASE\+\_\+\+ADDRESS~0x40000000}
+
+\mbox{\Hypertarget{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}\label{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}}
+\index{EF\_UART\_example.c@{EF\_UART\_example.c}!UART0@{UART0}}
+\index{UART0@{UART0}!EF\_UART\_example.c@{EF\_UART\_example.c}}
+\doxysubsubsection{\texorpdfstring{UART0}{UART0}}
+{\footnotesize\ttfamily \#define UART0~((\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR}})\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a245442e9ecffcadcce85a5cd86e9ed91}{Example\+\_\+\+UART\+\_\+\+BASE\+\_\+\+ADDRESS}})}
+
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}\label{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}}
+\index{EF\_UART\_example.c@{EF\_UART\_example.c}!EF\_UART\_example@{EF\_UART\_example}}
+\index{EF\_UART\_example@{EF\_UART\_example}!EF\_UART\_example.c@{EF\_UART\_example.c}}
+\doxysubsubsection{\texorpdfstring{EF\_UART\_example()}{EF\_UART\_example()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} EF\+\_\+\+UART\+\_\+example (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}
+
+
+
+Example Usage Example usage\+:
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_e_f___u_a_r_t_8h}{EF\_UART.h}}"{}}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\textcolor{preprocessor}{\#define\ Example\_UART\_BASE\_ADDRESS\ 0x40000000}}
+\DoxyCodeLine{\textcolor{preprocessor}{\#define\ UART0\ ((EF\_UART\_TYPE\_PTR)Example\_UART\_BASE\_ADDRESS)}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\_UART\_example}}(\textcolor{keywordtype}{void})\{}
+\DoxyCodeLine{\ \ \ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ status;}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Initialize\ UART\ with\ required\ configurations}}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\_Init}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ 9600,\ 16000000,\ 8,\ \textcolor{keyword}{false},\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10a8487756fbc720579906f0ae1738f0fcc}{EVEN}},\ 10,\ 4,\ 4);}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Transmit\ a\ message}}
+\DoxyCodeLine{\ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *message\ =\ \textcolor{stringliteral}{"{}Hello,\ UART!\(\backslash\)n"{}};}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a0f9ad65cbfe136ad4c4080612d578536}{EF\_UART\_writeCharArr}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ message);}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ transmission\ error}}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Receive\ a\ message}}
+\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{char}\ buffer[100];}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}{EF\_UART\_readCharArr}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ buffer,\ \textcolor{keyword}{sizeof}(buffer));}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ reception\ error}}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}};}
+\DoxyCodeLine{\}}
+
+\end{DoxyCode}
+
\ No newline at end of file
diff --git a/docs/doxygen/latex/_e_f___u_a_r_t__example_8h.tex b/docs/doxygen/latex/_e_f___u_a_r_t__example_8h.tex
new file mode 100644
index 0000000..c9e1c17
--- /dev/null
+++ b/docs/doxygen/latex/_e_f___u_a_r_t__example_8h.tex
@@ -0,0 +1,57 @@
+\hypertarget{_e_f___u_a_r_t__example_8h}{}\doxysection{EF\+\_\+\+UART\+\_\+example.\+h File Reference}
+\label{_e_f___u_a_r_t__example_8h}\index{EF\_UART\_example.h@{EF\_UART\_example.h}}
+{\ttfamily \#include \char`\"{}EF\+\_\+\+UART.\+h\char`\"{}}\newline
+\doxysubsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} \mbox{\hyperlink{_e_f___u_a_r_t__example_8h_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\+\_\+\+UART\+\_\+example}} (void)
+\begin{DoxyCompactList}\small\item\em Example Usage Example usage\+: \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Function Documentation}
+\mbox{\Hypertarget{_e_f___u_a_r_t__example_8h_a8451a75f6339b51e6239c6c4d01ee4e0}\label{_e_f___u_a_r_t__example_8h_a8451a75f6339b51e6239c6c4d01ee4e0}}
+\index{EF\_UART\_example.h@{EF\_UART\_example.h}!EF\_UART\_example@{EF\_UART\_example}}
+\index{EF\_UART\_example@{EF\_UART\_example}!EF\_UART\_example.h@{EF\_UART\_example.h}}
+\doxysubsubsection{\texorpdfstring{EF\_UART\_example()}{EF\_UART\_example()}}
+{\footnotesize\ttfamily \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\+\_\+\+DRIVER\+\_\+\+STATUS}} EF\+\_\+\+UART\+\_\+example (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}
+
+
+
+Example Usage Example usage\+:
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_e_f___u_a_r_t_8h}{EF\_UART.h}}"{}}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\textcolor{preprocessor}{\#define\ Example\_UART\_BASE\_ADDRESS\ 0x40000000}}
+\DoxyCodeLine{\textcolor{preprocessor}{\#define\ UART0\ ((EF\_UART\_TYPE\_PTR)Example\_UART\_BASE\_ADDRESS)}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\_UART\_example}}(\textcolor{keywordtype}{void})\{}
+\DoxyCodeLine{\ \ \ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ status;}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Initialize\ UART\ with\ required\ configurations}}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\_Init}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ 9600,\ 16000000,\ 8,\ \textcolor{keyword}{false},\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10a8487756fbc720579906f0ae1738f0fcc}{EVEN}},\ 10,\ 4,\ 4);}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Transmit\ a\ message}}
+\DoxyCodeLine{\ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *message\ =\ \textcolor{stringliteral}{"{}Hello,\ UART!\(\backslash\)n"{}};}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a0f9ad65cbfe136ad4c4080612d578536}{EF\_UART\_writeCharArr}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ message);}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ transmission\ error}}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Receive\ a\ message}}
+\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{char}\ buffer[100];}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}{EF\_UART\_readCharArr}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ buffer,\ \textcolor{keyword}{sizeof}(buffer));}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ reception\ error}}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}};}
+\DoxyCodeLine{\}}
+
+\end{DoxyCode}
+
\ No newline at end of file
diff --git a/docs/doxygen/latex/_e_f___u_a_r_t__example_8h_source.tex b/docs/doxygen/latex/_e_f___u_a_r_t__example_8h_source.tex
new file mode 100644
index 0000000..5fa59f6
--- /dev/null
+++ b/docs/doxygen/latex/_e_f___u_a_r_t__example_8h_source.tex
@@ -0,0 +1,72 @@
+\hypertarget{_e_f___u_a_r_t__example_8h_source}{}\doxysection{EF\+\_\+\+UART\+\_\+example.\+h}
+\mbox{\hyperlink{_e_f___u_a_r_t__example_8h}{Go to the documentation of this file.}}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{00001\ \textcolor{comment}{/*}}
+\DoxyCodeLine{00002\ \textcolor{comment}{\ \ \ \ Copyright\ 2025\ Efabless\ Corp.}}
+\DoxyCodeLine{00003\ \textcolor{comment}{}}
+\DoxyCodeLine{00004\ \textcolor{comment}{}}
+\DoxyCodeLine{00005\ \textcolor{comment}{\ \ \ \ Licensed\ under\ the\ Apache\ License,\ Version\ 2.0\ (the\ "{}License"{});}}
+\DoxyCodeLine{00006\ \textcolor{comment}{\ \ \ \ you\ may\ not\ use\ this\ file\ except\ in\ compliance\ with\ the\ License.}}
+\DoxyCodeLine{00007\ \textcolor{comment}{\ \ \ \ You\ may\ obtain\ a\ copy\ of\ the\ License\ at}}
+\DoxyCodeLine{00008\ \textcolor{comment}{}}
+\DoxyCodeLine{00009\ \textcolor{comment}{\ \ \ \ \ \ \ \ www.apache.org/licenses/LICENSE-\/2.0}}
+\DoxyCodeLine{00010\ \textcolor{comment}{}}
+\DoxyCodeLine{00011\ \textcolor{comment}{\ \ \ \ Unless\ required\ by\ applicable\ law\ or\ agreed\ to\ in\ writing,\ software}}
+\DoxyCodeLine{00012\ \textcolor{comment}{\ \ \ \ distributed\ under\ the\ License\ is\ distributed\ on\ an\ "{}AS\ IS"{}\ BASIS,}}
+\DoxyCodeLine{00013\ \textcolor{comment}{\ \ \ \ WITHOUT\ WARRANTIES\ OR\ CONDITIONS\ OF\ ANY\ KIND,\ either\ express\ or\ implied.}}
+\DoxyCodeLine{00014\ \textcolor{comment}{\ \ \ \ See\ the\ License\ for\ the\ specific\ language\ governing\ permissions\ and}}
+\DoxyCodeLine{00015\ \textcolor{comment}{\ \ \ \ limitations\ under\ the\ License.}}
+\DoxyCodeLine{00016\ \textcolor{comment}{}}
+\DoxyCodeLine{00017\ \textcolor{comment}{*/}}
+\DoxyCodeLine{00018\ }
+\DoxyCodeLine{00019\ }
+\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#ifndef\ EF\_UART\_EXAMPLE\_H}}
+\DoxyCodeLine{00027\ \textcolor{preprocessor}{\#define\ EF\_UART\_EXAMPLE\_H}}
+\DoxyCodeLine{00028\ }
+\DoxyCodeLine{00029\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00030\ \textcolor{comment}{*\ Includes}}
+\DoxyCodeLine{00031\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00032\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_e_f___u_a_r_t_8h}{EF\_UART.h}}"{}}}
+\DoxyCodeLine{00033\ }
+\DoxyCodeLine{00034\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00035\ \textcolor{comment}{*\ File-\/Specific\ Macros\ and\ Constants}}
+\DoxyCodeLine{00036\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00037\ }
+\DoxyCodeLine{00038\ }
+\DoxyCodeLine{00039\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00040\ \textcolor{comment}{*\ Static\ Variables}}
+\DoxyCodeLine{00041\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00042\ }
+\DoxyCodeLine{00043\ }
+\DoxyCodeLine{00044\ }
+\DoxyCodeLine{00045\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00046\ \textcolor{comment}{*\ Static\ Function\ Prototypes}}
+\DoxyCodeLine{00047\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00048\ }
+\DoxyCodeLine{00049\ }
+\DoxyCodeLine{00050\ }
+\DoxyCodeLine{00051\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00052\ \textcolor{comment}{*\ Function\ Definitions}}
+\DoxyCodeLine{00053\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00054\ }
+\DoxyCodeLine{00055\ }
+\DoxyCodeLine{00056\ }
+\DoxyCodeLine{00057\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00058\ \textcolor{comment}{*\ Example\ Usage}}
+\DoxyCodeLine{00059\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00060\ }
+\DoxyCodeLine{00097\ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t__example_8h_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\_UART\_example}}(\textcolor{keywordtype}{void});}
+\DoxyCodeLine{00098\ }
+\DoxyCodeLine{00099\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00100\ \textcolor{comment}{*\ Static\ Function\ Definitions}}
+\DoxyCodeLine{00101\ \textcolor{comment}{******************************************************************************/}}
+\DoxyCodeLine{00102\ }
+\DoxyCodeLine{00103\ }
+\DoxyCodeLine{00104\ }
+\DoxyCodeLine{00105\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ EF\_UART\_EXAMPLE\_H}}
+\DoxyCodeLine{00106\ }
+\DoxyCodeLine{00107\ \textcolor{comment}{/******************************************************************************}}
+\DoxyCodeLine{00108\ \textcolor{comment}{*\ End\ of\ File}}
+\DoxyCodeLine{00109\ \textcolor{comment}{******************************************************************************/}}
+
+\end{DoxyCode}
diff --git a/docs/doxygen/latex/files.tex b/docs/doxygen/latex/files.tex
index 74fb359..5566428 100644
--- a/docs/doxygen/latex/files.tex
+++ b/docs/doxygen/latex/files.tex
@@ -3,6 +3,7 @@
\item\contentsline{section}{\mbox{\hyperlink{_e_f___driver___common_8h}{EF\+\_\+\+Driver\+\_\+\+Common.\+h}} \\*C header file for common driver definitions and types }{\pageref{_e_f___driver___common_8h}}{}
\item\contentsline{section}{\mbox{\hyperlink{_e_f___u_a_r_t_8c}{EF\+\_\+\+UART.\+c}} \\*C file for UART APIs which contains the function implmentations }{\pageref{_e_f___u_a_r_t_8c}}{}
\item\contentsline{section}{\mbox{\hyperlink{_e_f___u_a_r_t_8h}{EF\+\_\+\+UART.\+h}} \\*C header file for UART APIs which contains the function prototypes }{\pageref{_e_f___u_a_r_t_8h}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_e_f___u_a_r_t__example_8c}{EF\+\_\+\+UART\+\_\+example.\+c}} \\*C file containing an example of how to use the UART APIs }{\pageref{_e_f___u_a_r_t__example_8c}}{}
+\item\contentsline{section}{\mbox{\hyperlink{_e_f___u_a_r_t__example_8h}{EF\+\_\+\+UART\+\_\+example.\+h}} }{\pageref{_e_f___u_a_r_t__example_8h}}{}
\item\contentsline{section}{\mbox{\hyperlink{_e_f___u_a_r_t__regs_8h}{EF\+\_\+\+UART\+\_\+regs.\+h}} }{\pageref{_e_f___u_a_r_t__regs_8h}}{}
-\item\contentsline{section}{\mbox{\hyperlink{example_8c}{example.\+c}} }{\pageref{example_8c}}{}
\end{DoxyCompactList}
diff --git a/docs/doxygen/latex/md__r_e_a_d_m_e.tex b/docs/doxygen/latex/md__r_e_a_d_m_e.tex
index 8fcb96a..1a714e8 100644
--- a/docs/doxygen/latex/md__r_e_a_d_m_e.tex
+++ b/docs/doxygen/latex/md__r_e_a_d_m_e.tex
@@ -3,6 +3,7 @@
\begin{DoxyItemize}
\item EF\+\_\+\+Driver\+\_\+\+Common.h
\item EF\+\_\+\+UART.h
+\item EF\+\_\+\+UART\+\_\+example.h
\item EF\+\_\+\+UART\+\_\+regs.h
\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md2}{}\doxysection{File EF\+\_\+\+Driver\+\_\+\+Common.\+h}\label{md__r_e_a_d_m_e_autotoc_md2}
{\itshape C header file for common driver definitions and types.}\hypertarget{md__r_e_a_d_m_e_autotoc_md3}{}\doxysection{Structures and Types}\label{md__r_e_a_d_m_e_autotoc_md3}
@@ -171,6 +172,8 @@
{\itshape returns the current value of the TX FIFO threshold} \\\cline{1-2}
\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+read\+Char$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uar, char $\ast$\+RXDATA\+\_\+value) ~\newline
{\itshape recieve a single character through uart} \\\cline{1-2}
+\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+read\+Char\+Arr$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uart, char $\ast$buffer, uint32\+\_\+t buffer\+\_\+size) ~\newline
+ \\\cline{1-2}
\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+read\+Char\+Non\+Blocking$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uart, char $\ast$\+RXDATA\+\_\+value, bool $\ast$data\+\_\+available) ~\newline
{\itshape This is a non-\/blocking function that reads a character from the UART receive FIFO if data is available and returns a status code.} \\\cline{1-2}
\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+set\+CTRL$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uart, uint32\+\_\+t value) ~\newline
@@ -206,7 +209,9 @@
\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+write\+Char\+Arr$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uart, const char $\ast$char\+\_\+arr) ~\newline
{\itshape transmit an array of characters through uart} \\\cline{1-2}
\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+write\+Char\+Non\+Blocking$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uart, char data, bool $\ast$data\+\_\+sent) ~\newline
-{\itshape This is a non-\/blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.} \\\cline{1-2}
+{\itshape This is a non-\/blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.} \\\cline{1-2}
+\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+UART\textbackslash{}\+\_\+\+Init$\ast$$\ast$ ($\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ uart, uint32\+\_\+t baud\+\_\+rate, uint32\+\_\+t bus\+\_\+clock, uint32\+\_\+t data\+\_\+bits, bool two\+\_\+stop\+\_\+bits, enum $\ast$$\ast$parity\textbackslash{}\+\_\+type$\ast$$\ast$ parity, uint32\+\_\+t timeout, uint32\+\_\+t rx\+\_\+threshold, uint32\+\_\+t tx\+\_\+threshold) ~\newline
+{\itshape This function initializes the UART with the specified parameters.} \\\cline{1-2}
\end{longtabu}
\hypertarget{md__r_e_a_d_m_e_autotoc_md18}{}\doxysection{Macros}\label{md__r_e_a_d_m_e_autotoc_md18}
\tabulinesep=1mm
@@ -809,7 +814,43 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md47}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+read\+Char\+Non\+Blocking$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md47}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md47}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+read\+Char\+Arr$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md47}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}{EF\_UART\_readCharArr}}\ (}
+\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE\_PTR}}\ uart,}
+\DoxyCodeLine{\ \ \ \ \textcolor{keywordtype}{char}\ *buffer,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ buffer\_size}
+\DoxyCodeLine{)\ }
+
+\end{DoxyCode}
+
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size.
+
+{\bfseries{Note\+:}}
+
+This is a blocking function and can only terminate under the following conditions\+:
+
+
+\begin{DoxyItemize}
+\item The buffer is full
+\item A \char`\"{}\textbackslash{}n\char`\"{} character is received
+\item An error is detected
+\end{DoxyItemize}
+
+{\bfseries{Parameters\+:}}
+
+
+\begin{DoxyItemize}
+\item {\ttfamily uart} An $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ , which points to the base memory address of UART registers.$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE$\ast$$\ast$ is a structure that contains the UART registers.
+\item {\ttfamily buffer} The buffer to store the received message
+\item {\ttfamily buffer\+\_\+size} The size of the buffer
+\end{DoxyItemize}
+
+{\bfseries{Returns\+:}}
+
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md48}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+read\+Char\+Non\+Blocking$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md48}
{\itshape This is a non-\/blocking function that reads a character from the UART receive FIFO if data is available and returns a status code.}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_aaa93d9c62ca6e64a622bb32e86fb2dc0}{EF\_UART\_readCharNonBlocking}}\ (}
@@ -832,7 +873,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md48}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+CTRL$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md48}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md49}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+CTRL$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md49}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_ad36fee036e144937af3eed59eea101c6}{EF\_UART\_setCTRL}}\ (}
@@ -864,7 +905,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md49}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Config$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md49}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md50}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Config$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md50}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a97261ae27ea5d029ecab9b25f2f45ac9}{EF\_UART\_setConfig}}\ (}
@@ -895,7 +936,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md50}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Data\+Size$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md50}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md51}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Data\+Size$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md51}
{\itshape sets the Data Size (Data word length\+: 5-\/9 bits ) by setting the \char`\"{}wlen\char`\"{} field in configuration register}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a04a859ae5492ec11e9f3b418337148e1}{EF\_UART\_setDataSize}}\ (}
@@ -916,7 +957,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md51}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Gclk\+Enable$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md51}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md52}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Gclk\+Enable$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md52}
{\itshape sets the GCLK enable bit in the UART register to a certain value}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a5b00ddd7df5f72886ea559da57a1b2bd}{EF\_UART\_setGclkEnable}}\ (}
@@ -937,7 +978,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md52}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+ICR$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md52}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md53}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+ICR$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md53}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a7ecbcf6bc73a4a3392648372441a6133}{EF\_UART\_setICR}}\ (}
@@ -974,7 +1015,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md53}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+IM$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md53}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md54}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+IM$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md54}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_ad62de52cc6d11bb10dfdc275d899bb0e}{EF\_UART\_setIM}}\ (}
@@ -1011,7 +1052,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md54}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Match\+Data$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md54}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md55}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Match\+Data$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md55}
{\itshape sets the match\+Data to a certain value at which \char`\"{}\+MATCH\char`\"{} interrupt will be raised}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_af275d224f7dcde400258b8d93e1ed2ce}{EF\_UART\_setMatchData}}\ (}
@@ -1032,7 +1073,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md55}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Parity\+Type$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md55}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md56}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Parity\+Type$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md56}
{\itshape sets the \char`\"{}parity\char`\"{} field in configuration register (could be none, odd, even, sticky 0 or sticky 1)}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a3af979ea01c716d9b6ca923b92cc5c31}{EF\_UART\_setParityType}}\ (}
@@ -1053,7 +1094,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md56}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Prescaler$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md56}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md57}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Prescaler$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md57}
{\itshape sets the prescaler to a certain value where Baud\+\_\+rate = Bus\+\_\+\+Clock\+\_\+\+Freq/((Prescaler+1)$\ast$16)}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a1184834b408cdeed94623c691068a352}{EF\_UART\_setPrescaler}}\ (}
@@ -1074,7 +1115,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md57}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Rx\+FIFOThreshold$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md57}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md58}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Rx\+FIFOThreshold$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md58}
{\itshape sets the RX FIFO threshold to a certain value at which \char`\"{}\+RXA\char`\"{} interrupt will be raised}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a8a2767ea0edab0500745dde177c1e58c}{EF\_UART\_setRxFIFOThreshold}}\ (}
@@ -1095,7 +1136,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md58}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Timeout\+Bits$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md58}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md59}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Timeout\+Bits$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md59}
{\itshape sets the \char`\"{}timeout\char`\"{} field in configuration register which is receiver timeout measured in number of bits at which the timeout flag will be raised}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_ad18a6e0c7701bdc66b483b1c53a3581d}{EF\_UART\_setTimeoutBits}}\ (}
@@ -1116,7 +1157,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md59}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Two\+Stop\+Bits\+Select$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md59}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md60}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Two\+Stop\+Bits\+Select$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md60}
{\itshape sets the \char`\"{}stp2\char`\"{} bit in configuration register (whether the stop boits are two or one)}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_ae2336d17bb87f77416fc9c6871b7cbdb}{EF\_UART\_setTwoStopBitsSelect}}\ (}
@@ -1137,7 +1178,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md60}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Tx\+FIFOThreshold$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md60}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md61}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+set\+Tx\+FIFOThreshold$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md61}
{\itshape sets the TX FIFO threshold to a certain value at which \char`\"{}\+TXB\char`\"{} interrupt will be raised}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a30ba41191c67b5242173320ab54e1205}{EF\_UART\_setTxFIFOThreshold}}\ (}
@@ -1158,7 +1199,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md61}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+space\+Available$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md61}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md62}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+space\+Available$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md62}
{\itshape This function returns a flag indicating whether or not the transmit is available, i.\+e. the transmit FIFO is not full.}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a7739739a5ceeadcf591f3b387c729d0c}{EF\_UART\_spaceAvailable}}\ (}
@@ -1179,7 +1220,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md62}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+write\+Char$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md62}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md63}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+write\+Char$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md63}
{\itshape transmit a single character through uart}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_ace1db9bbc3b092890acff854cec1aa77}{EF\_UART\_writeChar}}\ (}
@@ -1200,7 +1241,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md63}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+write\+Char\+Arr$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md63}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md64}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+write\+Char\+Arr$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md64}
{\itshape transmit an array of characters through uart}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a0f9ad65cbfe136ad4c4080612d578536}{EF\_UART\_writeCharArr}}\ (}
@@ -1221,7 +1262,7 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md64}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+write\+Char\+Non\+Blocking$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md64}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md65}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+write\+Char\+Non\+Blocking$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md65}
{\itshape This is a non-\/blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a8091314203111b165d1bad624159f8ba}{EF\_UART\_writeCharNonBlocking}}\ (}
@@ -1244,75 +1285,171 @@
{\bfseries{Returns\+:}}
-status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code\hypertarget{md__r_e_a_d_m_e_autotoc_md65}{}\doxysection{Macros Documentation}\label{md__r_e_a_d_m_e_autotoc_md65}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md66}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md66}
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code \hypertarget{md__r_e_a_d_m_e_autotoc_md66}{}\doxysubsection{function $<$tt$>$\+UART\+\_\+\+Init$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md66}
+{\itshape This function initializes the UART with the specified parameters.}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\_Init}}\ (}
+\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE\_PTR}}\ uart,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ baud\_rate,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ bus\_clock,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ data\_bits,}
+\DoxyCodeLine{\ \ \ \ \textcolor{keywordtype}{bool}\ two\_stop\_bits,}
+\DoxyCodeLine{\ \ \ \ \textcolor{keyword}{enum}\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10}{parity\_type}}\ parity,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ timeout,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ rx\_threshold,}
+\DoxyCodeLine{\ \ \ \ uint32\_t\ tx\_threshold}
+\DoxyCodeLine{)\ }
+
+\end{DoxyCode}
+
+
+{\bfseries{Parameters\+:}}
+
+
+\begin{DoxyItemize}
+\item {\ttfamily uart} An $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+\+PTR$\ast$$\ast$ , which points to the base memory address of UART registers.$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE$\ast$$\ast$ is a structure that contains the UART registers.
+\item {\ttfamily baud\+\_\+rate} The baud rate of the UART
+\item {\ttfamily bus\+\_\+clock} The bus clock frequency
+\item {\ttfamily data\+\_\+bits} The number of data bits
+\item {\ttfamily two\+\_\+stop\+\_\+bits} A flag indicating if two stop bits are used
+\item {\ttfamily parity} The parity mode
+\item {\ttfamily timeout} The receiver timeout
+\item {\ttfamily rx\+\_\+threshold} The receive FIFO threshold
+\item {\ttfamily tx\+\_\+threshold} The transmit FIFO threshold
+\end{DoxyItemize}
+
+{\bfseries{Returns\+:}}
+
+status A value of type $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ \+: returns a success or error code\hypertarget{md__r_e_a_d_m_e_autotoc_md67}{}\doxysection{Macros Documentation}\label{md__r_e_a_d_m_e_autotoc_md67}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md68}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md68}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_MAX\_VALUE\ ((uint32\_t)0x00001FFF)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md67}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+TIMEOUT\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md67}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md69}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+TIMEOUT\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md69}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_TIMEOUT\_MAX\_VALUE\ ((uint32\_t)0x0000003F)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md68}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md68}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md70}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md70}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_MAX\_VALUE\ ((uint32\_t)0x0000001F)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md69}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+Data\+Length\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md69}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md71}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+Data\+Length\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md71}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_DataLength\_MAX\_VALUE\ ((uint32\_t)0x00000009)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md70}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+Data\+Length\+\_\+\+MIN\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md70}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md72}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+Data\+Length\+\_\+\+MIN\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md72}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_DataLength\_MIN\_VALUE\ ((uint32\_t)0x00000005)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md71}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+IC\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md71}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md73}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+IC\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md73}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_IC\_REG\_MAX\_VALUE\ ((uint32\_t)0x000003FF)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md72}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+IM\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md72}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md74}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+IM\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md74}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_IM\_REG\_MAX\_VALUE\ ((uint32\_t)0x000003FF)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md73}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+MATCH\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md73}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md75}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+MATCH\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md75}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_MATCH\_REG\_MAX\_VALUE\ ((uint32\_t)0x00001FFF)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md74}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+PR\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md74}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md76}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+PR\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md76}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_PR\_REG\_MAX\_VALUE\ ((uint32\_t)0x0000FFFF)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md75}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md75}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md77}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md77}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_THRESHOLD\_REG\_MAX\_VALUE\ ((uint32\_t)0x0000000F)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md76}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md76}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md78}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+MAX\+\_\+\+VALUE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md78}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_THRESHOLD\_REG\_MAX\_VALUE\ ((uint32\_t)0x0000000F)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md77}{}\doxysection{File EF\+\_\+\+UART\+\_\+regs.\+h}\label{md__r_e_a_d_m_e_autotoc_md77}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md78}{}\doxysection{Structures and Types}\label{md__r_e_a_d_m_e_autotoc_md78}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md79}{}\doxysection{File EF\+\_\+\+UART\+\_\+example.\+h}\label{md__r_e_a_d_m_e_autotoc_md79}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md80}{}\doxysection{Functions}\label{md__r_e_a_d_m_e_autotoc_md80}
+\tabulinesep=1mm
+\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
+\hline
+\PBS\raggedleft \cellcolor{\tableheadbgcolor}\textbf{ Type }&\cellcolor{\tableheadbgcolor}\textbf{ Name }\\\cline{1-2}
+\endfirsthead
+\hline
+\endfoot
+\hline
+\PBS\raggedleft \cellcolor{\tableheadbgcolor}\textbf{ Type }&\cellcolor{\tableheadbgcolor}\textbf{ Name }\\\cline{1-2}
+\endhead
+\PBS\raggedleft $\ast$$\ast$\+EF\textbackslash{}\+\_\+\+DRIVER\textbackslash{}\+\_\+\+STATUS$\ast$$\ast$ &$\ast$$\ast$\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+example$\ast$$\ast$ (void) ~\newline
+{\itshape Example Usage Example usage\+:} \\\cline{1-2}
+\end{longtabu}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md81}{}\doxysection{Functions Documentation}\label{md__r_e_a_d_m_e_autotoc_md81}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md82}{}\doxysubsection{function $<$tt$>$\+EF\+\_\+\+UART\+\_\+example$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md82}
+{\itshape Example Usage Example usage\+:}
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\_UART\_example}}\ (}
+\DoxyCodeLine{\ \ \ \ \textcolor{keywordtype}{void}}
+\DoxyCodeLine{)\ }
+
+\end{DoxyCode}
+
+
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_e_f___u_a_r_t_8h}{EF\_UART.h}}"{}}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\textcolor{preprocessor}{\#define\ Example\_UART\_BASE\_ADDRESS\ 0x40000000}}
+\DoxyCodeLine{\textcolor{preprocessor}{\#define\ UART0\ ((EF\_UART\_TYPE\_PTR)Example\_UART\_BASE\_ADDRESS)}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ \mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a8451a75f6339b51e6239c6c4d01ee4e0}{EF\_UART\_example}}(\textcolor{keywordtype}{void})\{}
+\DoxyCodeLine{\ \ \ \mbox{\hyperlink{_e_f___driver___common_8h_ad1c99136d1edfd0a7757f5b81600a351}{EF\_DRIVER\_STATUS}}\ status;}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Initialize\ UART\ with\ required\ configurations}}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a1dc3757c8ca6e8725ab78bd72373ec6b}{UART\_Init}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ 9600,\ 16000000,\ 8,\ \textcolor{keyword}{false},\ \mbox{\hyperlink{_e_f___u_a_r_t_8h_aab5cbb4a185bfe65a14e19beeaba4f10a8487756fbc720579906f0ae1738f0fcc}{EVEN}},\ 10,\ 4,\ 4);}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Transmit\ a\ message}}
+\DoxyCodeLine{\ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *message\ =\ \textcolor{stringliteral}{"{}Hello,\ UART!\(\backslash\)n"{}};}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_a0f9ad65cbfe136ad4c4080612d578536}{EF\_UART\_writeCharArr}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ message);}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ transmission\ error}}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{}
+\DoxyCodeLine{\ \ \ \textcolor{comment}{//\ Receive\ a\ message}}
+\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{char}\ buffer[100];}
+\DoxyCodeLine{\ \ \ status\ =\ \mbox{\hyperlink{_e_f___u_a_r_t_8c_acb379fe3cc63f5e2eea43522c39823f7}{EF\_UART\_readCharArr}}(\mbox{\hyperlink{_e_f___u_a_r_t__example_8c_a0508661f121639ffdee7de2353a0def2}{UART0}},\ buffer,\ \textcolor{keyword}{sizeof}(buffer));}
+\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{if}\ (status\ !=\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}})\ \{}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{comment}{//\ Handle\ reception\ error}}
+\DoxyCodeLine{\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ status;}
+\DoxyCodeLine{\ \ \ \}}
+\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{return}\ \mbox{\hyperlink{_e_f___driver___common_8h_ab56c746d5d1672835c101f00f7c90b7c}{EF\_DRIVER\_OK}};}
+\DoxyCodeLine{\}}
+
+\end{DoxyCode}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md83}{}\doxysection{File EF\+\_\+\+UART\+\_\+regs.\+h}\label{md__r_e_a_d_m_e_autotoc_md83}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md84}{}\doxysection{Structures and Types}\label{md__r_e_a_d_m_e_autotoc_md84}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
@@ -1330,7 +1467,7 @@
\PBS\raggedleft struct &$\ast$$\ast$\textbackslash{}\+\_\+\+EF\textbackslash{}\+\_\+\+UART\textbackslash{}\+\_\+\+TYPE\textbackslash{}\+\_\+$\ast$$\ast$ ~\newline
\\\cline{1-2}
\end{longtabu}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md79}{}\doxysection{Macros}\label{md__r_e_a_d_m_e_autotoc_md79}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md85}{}\doxysection{Macros}\label{md__r_e_a_d_m_e_autotoc_md85}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
@@ -1430,20 +1567,20 @@
\PBS\raggedleft define &$\ast$$\ast$\textbackslash{}\+\_\+\textbackslash{}\+\_\+W$\ast$$\ast$ volatile uint32\+\_\+t~\newline
\\\cline{1-2}
\end{longtabu}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md80}{}\doxysection{Structures and Types Documentation}\label{md__r_e_a_d_m_e_autotoc_md80}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md81}{}\doxysubsection{typedef $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TYPE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md81}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md86}{}\doxysection{Structures and Types Documentation}\label{md__r_e_a_d_m_e_autotoc_md86}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md87}{}\doxysubsection{typedef $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TYPE$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md87}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{\_EF\_UART\_TYPE\_}}\ \mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE}};}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md82}{}\doxysubsection{typedef $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md82}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md88}{}\doxysubsection{typedef $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+\+PTR$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md88}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{typedef}\ \mbox{\hyperlink{struct___e_f___u_a_r_t___t_y_p_e__}{EF\_UART\_TYPE}}*\ \mbox{\hyperlink{_e_f___u_a_r_t__regs_8h_ab605c9cde76c27dd58ec6cf73ca70893}{EF\_UART\_TYPE\_PTR}};}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md83}{}\doxysubsection{struct $<$tt$>$\+\_\+\+EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md83}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md89}{}\doxysubsection{struct $<$tt$>$\+\_\+\+EF\+\_\+\+UART\+\_\+\+TYPE\+\_\+$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md89}
Variables\+:
@@ -1490,266 +1627,266 @@
\item $\ast$$\ast$\textbackslash{}\+\_\+\textbackslash{}\+\_\+R$\ast$$\ast$ reserved\+\_\+3 ~\newline
-\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md84}{}\doxysection{Macros Documentation}\label{md__r_e_a_d_m_e_autotoc_md84}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md85}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+BRK\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md85}
+\end{DoxyItemize}\hypertarget{md__r_e_a_d_m_e_autotoc_md90}{}\doxysection{Macros Documentation}\label{md__r_e_a_d_m_e_autotoc_md90}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md91}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+BRK\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md91}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_BRK\_FLAG\ ((uint32\_t)0x10)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md86}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+PARITY\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md86}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md92}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+PARITY\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md92}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_PARITY\_BIT\ ((uint32\_t)5)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md87}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+PARITY\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md87}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md93}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+PARITY\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md93}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_PARITY\_MASK\ ((uint32\_t)0xe0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md88}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+STP2\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md88}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md94}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+STP2\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md94}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_STP2\_BIT\ ((uint32\_t)4)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md89}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+STP2\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md89}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md95}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+STP2\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md95}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_STP2\_MASK\ ((uint32\_t)0x10)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md90}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+TIMEOUT\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md90}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md96}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+TIMEOUT\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md96}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_TIMEOUT\_BIT\ ((uint32\_t)8)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md91}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+TIMEOUT\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md91}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md97}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+TIMEOUT\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md97}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_TIMEOUT\_MASK\ ((uint32\_t)0x3f)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md92}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+WLEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md92}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md98}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+WLEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md98}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_WLEN\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md93}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+WLEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md93}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md99}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CFG\+\_\+\+REG\+\_\+\+WLEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md99}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CFG\_REG\_WLEN\_MASK\ ((uint32\_t)0xf)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md94}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+EN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md94}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md100}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+EN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md100}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_EN\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md95}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+EN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md95}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md101}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+EN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md101}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_EN\_MASK\ ((uint32\_t)0x1)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md96}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+GFEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md96}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md102}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+GFEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md102}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_GFEN\_BIT\ ((uint32\_t)4)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md97}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+GFEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md97}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md103}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+GFEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md103}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_GFEN\_MASK\ ((uint32\_t)0x10)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md98}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+LPEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md98}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md104}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+LPEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md104}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_LPEN\_BIT\ ((uint32\_t)3)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md99}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+LPEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md99}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md105}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+LPEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md105}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_LPEN\_MASK\ ((uint32\_t)0x8)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md100}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+RXEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md100}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md106}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+RXEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md106}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_RXEN\_BIT\ ((uint32\_t)2)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md101}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+RXEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md101}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md107}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+RXEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md107}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_RXEN\_MASK\ ((uint32\_t)0x4)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md102}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+TXEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md102}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md108}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+TXEN\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md108}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_TXEN\_BIT\ ((uint32\_t)1)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md103}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+TXEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md103}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md109}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+CTRL\+\_\+\+REG\+\_\+\+TXEN\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md109}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_CTRL\_REG\_TXEN\_MASK\ ((uint32\_t)0x2)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md104}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+FE\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md104}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md110}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+FE\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md110}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_FE\_FLAG\ ((uint32\_t)0x40)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md105}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+MATCH\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md105}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md111}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+MATCH\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md111}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_MATCH\_FLAG\ ((uint32\_t)0x20)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md106}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+OR\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md106}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md112}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+OR\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md112}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_OR\_FLAG\ ((uint32\_t)0x100)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md107}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+PRE\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md107}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md113}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+PRE\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md113}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_PRE\_FLAG\ ((uint32\_t)0x80)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md108}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RTO\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md108}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md114}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RTO\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md114}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RTO\_FLAG\ ((uint32\_t)0x200)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md109}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RXA\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md109}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md115}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RXA\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md115}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RXA\_FLAG\ ((uint32\_t)0x8)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md110}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RXF\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md110}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md116}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RXF\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md116}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RXF\_FLAG\ ((uint32\_t)0x2)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md111}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md111}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md117}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md117}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_FLUSH\_REG\_FLUSH\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md112}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md112}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md118}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md118}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_FLUSH\_REG\_FLUSH\_MASK\ ((uint32\_t)0x1)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md113}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md113}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md119}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md119}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_LEVEL\_REG\_LEVEL\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md114}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md114}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md120}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md120}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_LEVEL\_REG\_LEVEL\_MASK\ ((uint32\_t)0xf)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md115}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md115}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md121}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md121}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_THRESHOLD\_REG\_THRESHOLD\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md116}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md116}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md122}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+RX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md122}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_RX\_FIFO\_THRESHOLD\_REG\_THRESHOLD\_MASK\ ((uint32\_t)0xf)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md117}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TXB\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md117}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md123}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TXB\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md123}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TXB\_FLAG\ ((uint32\_t)0x4)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md118}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TXE\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md118}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md124}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TXE\+\_\+\+FLAG$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md124}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TXE\_FLAG\ ((uint32\_t)0x1)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md119}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md119}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md125}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md125}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_FLUSH\_REG\_FLUSH\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md120}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md120}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md126}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+FLUSH\+\_\+\+REG\+\_\+\+FLUSH\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md126}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_FLUSH\_REG\_FLUSH\_MASK\ ((uint32\_t)0x1)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md121}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md121}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md127}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md127}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_LEVEL\_REG\_LEVEL\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md122}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md122}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md128}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+LEVEL\+\_\+\+REG\+\_\+\+LEVEL\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md128}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_LEVEL\_REG\_LEVEL\_MASK\ ((uint32\_t)0xf)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md123}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md123}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md129}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+BIT$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md129}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_THRESHOLD\_REG\_THRESHOLD\_BIT\ ((uint32\_t)0)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md124}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md124}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md130}{}\doxysubsection{define $<$tt$>$\+EF\+\_\+\+UART\+\_\+\+TX\+\_\+\+FIFO\+\_\+\+THRESHOLD\+\_\+\+REG\+\_\+\+THRESHOLD\+\_\+\+MASK$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md130}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ EF\_UART\_TX\_FIFO\_THRESHOLD\_REG\_THRESHOLD\_MASK\ ((uint32\_t)0xf)}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md125}{}\doxysubsection{define $<$tt$>$\+IO\+\_\+\+TYPES$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md125}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md131}{}\doxysubsection{define $<$tt$>$\+IO\+\_\+\+TYPES$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md131}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ IO\_TYPES\ }}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md126}{}\doxysubsection{define $<$tt$>$\+\_\+\+\_\+\+R$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md126}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md132}{}\doxysubsection{define $<$tt$>$\+\_\+\+\_\+\+R$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md132}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ \_\_R\ volatile\ const\ uint32\_t}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md127}{}\doxysubsection{define $<$tt$>$\+\_\+\+\_\+\+RW$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md127}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md133}{}\doxysubsection{define $<$tt$>$\+\_\+\+\_\+\+RW$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md133}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ \_\_RW\ volatile\ \ \ \ \ \ \ uint32\_t}}
\end{DoxyCode}
-\hypertarget{md__r_e_a_d_m_e_autotoc_md128}{}\doxysubsection{define $<$tt$>$\+\_\+\+\_\+\+W$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md128}
+\hypertarget{md__r_e_a_d_m_e_autotoc_md134}{}\doxysubsection{define $<$tt$>$\+\_\+\+\_\+\+W$<$/tt$>$}\label{md__r_e_a_d_m_e_autotoc_md134}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#define\ \_\_W\ volatile\ \ \ \ \ \ \ uint32\_t}}
diff --git a/docs/doxygen/latex/refman.tex b/docs/doxygen/latex/refman.tex
index 93f4c7c..b523cc0 100644
--- a/docs/doxygen/latex/refman.tex
+++ b/docs/doxygen/latex/refman.tex
@@ -192,9 +192,11 @@ \chapter{File Documentation}
\input{_e_f___u_a_r_t_8c}
\input{_e_f___u_a_r_t_8h}
\input{_e_f___u_a_r_t_8h_source}
+\input{_e_f___u_a_r_t__example_8c}
+\input{_e_f___u_a_r_t__example_8h}
+\input{_e_f___u_a_r_t__example_8h_source}
\input{_e_f___u_a_r_t__regs_8h}
\input{_e_f___u_a_r_t__regs_8h_source}
-\input{example_8c}
\input{_r_e_a_d_m_e_8md}
%--- End generated contents ---
% Index
diff --git a/docs/doxygen/xml/_e_f___driver___common_8h.xml b/docs/doxygen/xml/_e_f___driver___common_8h.xml
index 14c6a77..109c092 100644
--- a/docs/doxygen/xml/_e_f___driver___common_8h.xml
+++ b/docs/doxygen/xml/_e_f___driver___common_8h.xml
@@ -34,7 +34,7 @@
-
+
@@ -50,15 +50,21 @@
+
+
+
+
+
+
+
+
+
+
-
-
-
-
diff --git a/docs/doxygen/xml/_e_f___u_a_r_t_8c.xml b/docs/doxygen/xml/_e_f___u_a_r_t_8c.xml
index 8e64ba5..ab06cb9 100644
--- a/docs/doxygen/xml/_e_f___u_a_r_t_8c.xml
+++ b/docs/doxygen/xml/_e_f___u_a_r_t_8c.xml
@@ -397,7 +397,7 @@
-
+ EF_DRIVER_STATUS
@@ -446,7 +446,7 @@
-
+ EF_DRIVER_STATUS
@@ -488,7 +488,7 @@
-
+ EF_DRIVER_STATUS
@@ -530,7 +530,7 @@
-
+ EF_DRIVER_STATUS
@@ -572,7 +572,7 @@
-
+ EF_DRIVER_STATUS
@@ -615,7 +615,7 @@
-
+ EF_DRIVER_STATUS
@@ -1483,7 +1483,7 @@
-
+ EF_DRIVER_STATUS
@@ -1525,7 +1525,7 @@
-
+ EF_DRIVER_STATUS
@@ -1568,7 +1568,7 @@
-
+ EF_DRIVER_STATUS
@@ -1622,7 +1622,7 @@
-
+ EF_DRIVER_STATUS
@@ -1676,7 +1676,7 @@
-
+ EF_DRIVER_STATUS
@@ -1719,7 +1719,7 @@
-
+ EF_DRIVER_STATUS
@@ -1762,7 +1762,7 @@
-
+ EF_DRIVER_STATUS
@@ -1804,7 +1804,7 @@
-
+ EF_DRIVER_STATUS
@@ -1847,7 +1847,193 @@
-
+
+
+
+ EF_DRIVER_STATUS
+ EF_DRIVER_STATUS UART_Init
+ (EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold)
+ UART_Init
+
+ EF_UART_TYPE_PTR
+ uart
+
+
+ uint32_t
+ baud_rate
+
+
+ uint32_t
+ bus_clock
+
+
+ uint32_t
+ data_bits
+
+
+ bool
+ two_stop_bits
+
+
+ enum parity_type
+ parity
+
+
+ uint32_t
+ timeout
+
+
+ uint32_t
+ rx_threshold
+
+
+ uint32_t
+ tx_threshold
+
+
+This function initializes the UART with the specified parameters.
+
+
+
+
+uart
+
+
+An EF_UART_TYPE_PTR , which points to the base memory address of UART registers. EF_UART_TYPE is a structure that contains the UART registers.
+
+
+
+
+baud_rate
+
+
+The baud rate of the UART
+
+
+
+
+bus_clock
+
+
+The bus clock frequency
+
+
+
+
+data_bits
+
+
+The number of data bits
+
+
+
+
+two_stop_bits
+
+
+A flag indicating if two stop bits are used
+
+
+
+
+parity
+
+
+The parity mode
+
+
+
+
+timeout
+
+
+The receiver timeout
+
+
+
+
+rx_threshold
+
+
+The receive FIFO threshold
+
+
+
+
+tx_threshold
+
+
+The transmit FIFO threshold
+
+
+
+status A value of type EF_DRIVER_STATUS : returns a success or error code
+
+
+
+
+
+
+
+
+ EF_DRIVER_STATUS
+ EF_DRIVER_STATUS EF_UART_readCharArr
+ (EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size)
+ EF_UART_readCharArr
+
+ EF_UART_TYPE_PTR
+ uart
+
+
+ char *
+ buffer
+
+
+ uint32_t
+ buffer_size
+
+
+
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size. This is a blocking function and can only terminate under the following conditions:
+The buffer is full
+A "\n" character is received
+An error is detected
+
+
+
+
+
+uart
+
+
+An EF_UART_TYPE_PTR , which points to the base memory address of UART registers. EF_UART_TYPE is a structure that contains the UART registers.
+
+
+
+
+buffer
+
+
+The buffer to store the received message
+
+
+
+
+buffer_size
+
+
+The size of the buffer
+
+
+
+status A value of type EF_DRIVER_STATUS : returns a success or error code
+
+
+
+
+
+
@@ -1941,7 +2127,7 @@
if(uart==NULL){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CTRL&=~EF_UART_CTRL_REG_EN_MASK;//Cleartheenablebitusingthespecifiedmask
+uart->CTRL&=~(EF_UART_CTRL_REG_EN_MASK<<EF_UART_CTRL_REG_EN_BIT);//Cleartheenablebitusingthespecifiedmask}returnstatus;
@@ -1967,7 +2153,7 @@
if(uart==NULL){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CTRL&=~EF_UART_CTRL_REG_RXEN_MASK;//Cleartheenablebitusingthespecifiedmask
+uart->CTRL&=~(EF_UART_CTRL_REG_RXEN_MASK<<EF_UART_CTRL_REG_RXEN_BIT);//Cleartheenablebitusingthespecifiedmask}returnstatus;
@@ -1993,7 +2179,7 @@
if(uart==NULL){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CTRL&=~EF_UART_CTRL_REG_TXEN_MASK;//Cleartheenablebitusingthespecifiedmask
+uart->CTRL&=~(EF_UART_CTRL_REG_TXEN_MASK<<EF_UART_CTRL_REG_TXEN_BIT);//Cleartheenablebitusingthespecifiedmask}returnstatus;
@@ -2019,7 +2205,7 @@
if(uart==NULL){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CTRL&=~EF_UART_CTRL_REG_LPEN_MASK;//Cleartheenablebitusingthespecifiedmask
+uart->CTRL&=~(EF_UART_CTRL_REG_LPEN_MASK<<EF_UART_CTRL_REG_LPEN_BIT);//Cleartheenablebitusingthespecifiedmask}returnstatus;
@@ -2031,9 +2217,9 @@
EF_DRIVER_STATUSstatus=EF_DRIVER_OK;if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CTRL&=~EF_UART_CTRL_REG_GFEN_MASK;//Cleartheenablebitusingthespecifiedmask
+uart->CTRL&=~(EF_UART_CTRL_REG_GFEN_MASK<<EF_UART_CTRL_REG_GFEN_BIT);//Cleartheenablebitusingthespecifiedmaskuart->CTRL|=((uint32_t)0x1<<EF_UART_CTRL_REG_GFEN_BIT);//settheenablebitto1atthespecifiedoffset}
@@ -2045,98 +2231,98 @@
EF_DRIVER_STATUSstatus=EF_DRIVER_OK;if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CTRL&=~EF_UART_CTRL_REG_GFEN_MASK;//Cleartheenablebitusingthespecifiedmask
-
-}
-returnstatus;
-}
+uart->CTRL&=~(EF_UART_CTRL_REG_GFEN_MASK<<EF_UART_CTRL_REG_GFEN_BIT);//Cleartheenablebitusingthespecifiedmask
+}
+returnstatus;
+}
+
-
-EF_DRIVER_STATUSEF_UART_setCTRL(EF_UART_TYPE_PTRuart,uint32_tvalue){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(value>EF_UART_CTRL_REG_MAX_VALUE){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifvalueisoutofrange
-}else{
-uart->CTRL=value;
-
-}
-returnstatus;
-}
+EF_DRIVER_STATUSEF_UART_setCTRL(EF_UART_TYPE_PTRuart,uint32_tvalue){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(value>EF_UART_CTRL_REG_MAX_VALUE){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifvalueisoutofrange
+}else{
+uart->CTRL=value;
+
+}
+returnstatus;
+}
+
-
-EF_DRIVER_STATUSEF_UART_getCTRL(EF_UART_TYPE_PTRuart,uint32_t*CTRL_value){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(CTRL_value==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifCTRL_valueisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-*CTRL_value=uart->CTRL;
-
-}
-returnstatus;
-}
+EF_DRIVER_STATUSEF_UART_getCTRL(EF_UART_TYPE_PTRuart,uint32_t*CTRL_value){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(CTRL_value==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifCTRL_valueisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+*CTRL_value=uart->CTRL;
+
+}
+returnstatus;
+}
+
-
-EF_DRIVER_STATUSEF_UART_setPrescaler(EF_UART_TYPE_PTRuart,uint32_tprescaler){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(prescaler>EF_UART_PR_REG_MAX_VALUE){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifprescalerisoutofrange
-}else{
-uart->PR=prescaler;
-
-}
-returnstatus;
-}
-
-EF_DRIVER_STATUSEF_UART_getPrescaler(EF_UART_TYPE_PTRuart,uint32_t*Prescaler_value){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(Prescaler_value==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifPrescaler_valueisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-*Prescaler_value=uart->PR;
-
-}
-returnstatus;
-}
+EF_DRIVER_STATUSEF_UART_setPrescaler(EF_UART_TYPE_PTRuart,uint32_tprescaler){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(prescaler>EF_UART_PR_REG_MAX_VALUE){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifprescalerisoutofrange
+}else{
+uart->PR=prescaler;
+
+}
+returnstatus;
+}
+
+EF_DRIVER_STATUSEF_UART_getPrescaler(EF_UART_TYPE_PTRuart,uint32_t*Prescaler_value){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(Prescaler_value==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifPrescaler_valueisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+*Prescaler_value=uart->PR;
+
+}
+returnstatus;
+}
+
-
-EF_DRIVER_STATUSEF_UART_setDataSize(EF_UART_TYPE_PTRuart,uint32_tvalue){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif((value<EF_UART_DataLength_MIN_VALUE)||(value>EF_UART_DataLength_MAX_VALUE)){
-status=EF_DRIVER_ERROR_UNSUPPORTED;//ReturnEF_DRIVER_ERROR_UNSUPPORTEDifdatalengthisoutofrange
-//ThisUARTIPonlysupportsdatalengthfrom5to9bits
-}else{
-
-uart->CFG&=~EF_UART_CFG_REG_WLEN_MASK;//Clearthefieldbitsintheregisterusingthedefinedmask
-uart->CFG|=((value<<EF_UART_CFG_REG_WLEN_BIT)&EF_UART_CFG_REG_WLEN_MASK);//Setthebitswiththegivenvalueatthedefinedoffset
-
-}
-returnstatus;
-}
-
+EF_DRIVER_STATUSEF_UART_setDataSize(EF_UART_TYPE_PTRuart,uint32_tvalue){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif((value<EF_UART_DataLength_MIN_VALUE)||(value>EF_UART_DataLength_MAX_VALUE)){
+status=EF_DRIVER_ERROR_UNSUPPORTED;//ReturnEF_DRIVER_ERROR_UNSUPPORTEDifdatalengthisoutofrange
+//ThisUARTIPonlysupportsdatalengthfrom5to9bits
+}else{
+
+uart->CFG&=~(EF_UART_CFG_REG_WLEN_MASK<<EF_UART_CFG_REG_WLEN_BIT);//Clearthefieldbitsintheregisterusingthedefinedmask
+uart->CFG|=((value<<EF_UART_CFG_REG_WLEN_BIT)&EF_UART_CFG_REG_WLEN_MASK);//Setthebitswiththegivenvalueatthedefinedoffset
+
+}
+returnstatus;
+}
+
+//todo:makethisgenericbetween1and2bitsEF_DRIVER_STATUSEF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTRuart,boolis_two_bits){
@@ -2148,7 +2334,7 @@
if(is_two_bits){uart->CFG|=((uint32_t)0x1<<EF_UART_CFG_REG_STP2_BIT);//settheenablebitto1atthespecifiedoffset}else{
-uart->CFG&=~EF_UART_CFG_REG_STP2_MASK;//Cleartheenablebitusingthespecifiedmask
+uart->CFG&=~(EF_UART_CFG_REG_STP2_MASK<<EF_UART_CFG_REG_STP2_BIT);//Cleartheenablebitusingthespecifiedmask}}
@@ -2164,7 +2350,7 @@
if(uart==NULL){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL}else{
-uart->CFG&=~EF_UART_CFG_REG_PARITY_MASK;//Clearthefieldbitsintheregisterusingthedefinedmask
+uart->CFG&=~(EF_UART_CFG_REG_PARITY_MASK<<EF_UART_CFG_REG_PARITY_BIT);//Clearthefieldbitsintheregisterusingthedefinedmaskuart->CFG|=((parity<<EF_UART_CFG_REG_PARITY_BIT)&EF_UART_CFG_REG_PARITY_MASK);//Setthebitswiththegivenvalueatthedefinedoffset}
@@ -2181,8 +2367,8 @@
}elseif(value>EF_UART_CFG_REG_TIMEOUT_MAX_VALUE){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifvalueisoutofrange}else{
-uart->CFG&=~EF_UART_CFG_REG_TIMEOUT_MASK;//Clearthefieldbitsintheregisterusingthedefinedmask
-uart->CFG|=((value<<EF_UART_CFG_REG_TIMEOUT_BIT)&EF_UART_CFG_REG_TIMEOUT_MASK);//Setthebitswiththegivenvalueatthedefinedoffset
+uart->CFG&=~(EF_UART_CFG_REG_TIMEOUT_MASK<<EF_UART_CFG_REG_TIMEOUT_BIT);//Clearthefieldbitsintheregisterusingthedefinedmask
+uart->CFG|=((value<<EF_UART_CFG_REG_TIMEOUT_BIT)&EF_UART_CFG_REG_TIMEOUT_MASK);//Setthebitswiththegivenvalueatthedefinedoffset}returnstatus;
@@ -2399,7 +2585,7 @@
status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifmaskisoutofrange}else{
-uart->IM|=mask;
+uart->IM=mask;}returnstatus;
@@ -2431,7 +2617,7 @@
}elseif(mask>EF_UART_IC_REG_MAX_VALUE){status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifmaskisoutofrange}else{
-uart->IC|=mask;
+uart->IC=mask;}returnstatus;
@@ -2451,195 +2637,282 @@
status=EF_UART_getRIS(uart,&RIS_value);}while((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_TXB_FLAG)==(uint32_t)0x0);//waituntiltxlevelbelowflagis1
-uart->TXDATA=data;
-status=EF_UART_setICR(uart,EF_UART_TXB_FLAG);
-}
-returnstatus;
-}
-
-EF_DRIVER_STATUSEF_UART_writeCharArr(EF_UART_TYPE_PTRuart,constchar*char_arr){
+if(status==EF_DRIVER_OK){
+uart->TXDATA=data;
+status=EF_UART_setICR(uart,EF_UART_TXB_FLAG);
+}else{}
+}
+returnstatus;
+}
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}else{
-uint32_tRIS_value;
-char*char_arr_iterator=char_arr;
-while((status==EF_DRIVER_OK)&&(*char_arr_iterator)){
-do{
-status=EF_UART_getRIS(uart,&RIS_value);
-}while((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_TXB_FLAG)==(uint32_t)0x0);//waituntiltxlevelbelowflagis1
-
-uart->TXDATA=(*(char_arr_iterator));
-char_arr_iterator++;
-status=EF_UART_setICR(uart,EF_UART_TXB_FLAG);
-}
-}
-returnstatus;
-}
-
-EF_DRIVER_STATUSEF_UART_readChar(EF_UART_TYPE_PTRuart,char*RXDATA_value){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+EF_DRIVER_STATUSEF_UART_writeCharArr(EF_UART_TYPE_PTRuart,constchar*char_arr){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}else{
+uint32_tRIS_value;
+char*char_arr_iterator=char_arr;
+while((status==EF_DRIVER_OK)&&(*char_arr_iterator)){
+do{
+status=EF_UART_getRIS(uart,&RIS_value);
+}while((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_TXB_FLAG)==(uint32_t)0x0);//waituntiltxlevelbelowflagis1
+
+if(status==EF_DRIVER_OK){
+uart->TXDATA=(*(char_arr_iterator));
+char_arr_iterator++;
+status=EF_UART_setICR(uart,EF_UART_TXB_FLAG);
+}else{}
+}
+}
+returnstatus;
+}
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}else{
-uint32_tRIS_value;
-do{
-status=EF_UART_getRIS(uart,&RIS_value);
-}while((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_RXA_FLAG)==(uint32_t)0x0);//waitoverRXfifolevelaboveflagtobe1
-*RXDATA_value=uart->RXDATA;
-status=EF_UART_setICR(uart,EF_UART_RXA_FLAG);
-}
-returnstatus;
-}
-
-
-//Thefollowingfunctionsarenotverifiedyet
-/******************************************************************************************************************************************/
-/*******************************************************************************xs***********************************************************/
-
-EF_DRIVER_STATUSEF_UART_readCharNonBlocking(EF_UART_TYPE_PTRuart,char*RXDATA_value,bool*data_available){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(RXDATA_value==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifRXDATA_valueisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}elseif(data_available==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifdata_availableisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-
-uint32_tRIS_value;
-status=EF_UART_getRIS(uart,&RIS_value);
-
-//Checkifdataisavailable
-if((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_RXA_FLAG)==(uint32_t)0x0){
-*data_available=false;
-}else{
-*data_available=true;
-*RXDATA_value=uart->RXDATA;
-status=EF_UART_setICR(uart,EF_UART_RXA_FLAG);
-}
-}
-returnstatus;
-}
-
-EF_DRIVER_STATUSEF_UART_writeCharNonBlocking(EF_UART_TYPE_PTRuart,chardata,bool*data_sent){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(data_sent==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifdata_sentisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-
-uint32_tRIS_value;
-status=EF_UART_getRIS(uart,&RIS_value);
-
-//Checkifdataisavailable
-if((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_TXB_FLAG)==(uint32_t)0x0){
-*data_sent=false;
-}else{
-*data_sent=true;
-uart->TXDATA=data;
-status=EF_UART_setICR(uart,EF_UART_TXB_FLAG);
-}
-}
-returnstatus;
-}
-
-
-EF_DRIVER_STATUSEF_UART_charsAvailable(EF_UART_TYPE_PTRuart,bool*RXA_flag){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(RXA_flag==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifRXA_flagisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-uint32_tRIS_value;
-status=EF_UART_getRIS(uart,&RIS_value);
-if(status==EF_DRIVER_OK){
-*RXA_flag=(RIS_value&EF_UART_RXA_FLAG)!=(uint32_t)0x0;
-}else{}
-}
-returnstatus;
-}
-
-EF_DRIVER_STATUSEF_UART_spaceAvailable(EF_UART_TYPE_PTRuart,bool*TXB_flag){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(TXB_flag==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifTXB_flagisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-uint32_tRIS_value;
-status=EF_UART_getRIS(uart,&RIS_value);
-if(status==EF_DRIVER_OK){
-*TXB_flag=(RIS_value&EF_UART_TXB_FLAG);//checkifTXFIFOlevelisbelowthevalueintheTXFIFOLevelThresholdRegister
-}else{}
-}
-returnstatus;
-}
-
-
-EF_DRIVER_STATUSEF_UART_getParityMode(EF_UART_TYPE_PTRuart,uint32_t*parity_mode){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(parity_mode==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifparity_modeisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-*parity_mode=(uart->CFG&EF_UART_CFG_REG_PARITY_MASK)>>EF_UART_CFG_REG_PARITY_BIT;
-}
-returnstatus;
-}
-
-EF_DRIVER_STATUSEF_UART_busy(EF_UART_TYPE_PTRuart,bool*busy_flag){
-
-EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
-if(uart==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
-}elseif(busy_flag==NULL){
-status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifbusy_flagisNULL,
-//i.e.thereisnomemorylocationtostorethevalue
-}else{
-uint32_tRIS_value;
-status=EF_UART_getRIS(uart,&RIS_value);
-if(status==EF_DRIVER_OK){
-*busy_flag=(RIS_value&EF_UART_TXE_FLAG)==(uint32_t)0x0;
-}else{}
-}
-returnstatus;
-}
-
-//todo:documentthethresholdisthefifomax
-
-/******************************************************************************
-*StaticFunctionDefinitions
-******************************************************************************/
-
+EF_DRIVER_STATUSEF_UART_readChar(EF_UART_TYPE_PTRuart,char*RXDATA_value){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}else{
+uint32_tRIS_value;
+do{
+status=EF_UART_getRIS(uart,&RIS_value);
+}while((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_RXA_FLAG)==(uint32_t)0x0);//waitoverRXfifolevelaboveflagtobe1
+
+if(status==EF_DRIVER_OK){
+*RXDATA_value=uart->RXDATA;
+status=EF_UART_setICR(uart,EF_UART_RXA_FLAG);
+}else{}
+}
+returnstatus;
+}
+
+
+//Thefollowingfunctionsarenotverifiedyet
+/******************************************************************************************************************************************/
+/*******************************************************************************xs***********************************************************/
+
+EF_DRIVER_STATUSEF_UART_readCharNonBlocking(EF_UART_TYPE_PTRuart,char*RXDATA_value,bool*data_available){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(RXDATA_value==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifRXDATA_valueisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}elseif(data_available==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifdata_availableisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+
+uint32_tRIS_value;
+status=EF_UART_getRIS(uart,&RIS_value);
+
+//Checkifdataisavailable
+if((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_RXA_FLAG)==(uint32_t)0x0){
+*data_available=false;
+}else{
+*data_available=true;
+*RXDATA_value=uart->RXDATA;
+status=EF_UART_setICR(uart,EF_UART_RXA_FLAG);
+}
+}
+returnstatus;
+}
+
+EF_DRIVER_STATUSEF_UART_writeCharNonBlocking(EF_UART_TYPE_PTRuart,chardata,bool*data_sent){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(data_sent==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifdata_sentisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+
+uint32_tRIS_value;
+status=EF_UART_getRIS(uart,&RIS_value);
+
+//Checkifdataisavailable
+if((status==EF_DRIVER_OK)&&(RIS_value&EF_UART_TXB_FLAG)==(uint32_t)0x0){
+*data_sent=false;
+}else{
+*data_sent=true;
+uart->TXDATA=data;
+status=EF_UART_setICR(uart,EF_UART_TXB_FLAG);
+}
+}
+returnstatus;
+}
+
+
+EF_DRIVER_STATUSEF_UART_charsAvailable(EF_UART_TYPE_PTRuart,bool*RXA_flag){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(RXA_flag==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifRXA_flagisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+uint32_tRIS_value;
+status=EF_UART_getRIS(uart,&RIS_value);
+if(status==EF_DRIVER_OK){
+*RXA_flag=(RIS_value&EF_UART_RXA_FLAG)!=(uint32_t)0x0;
+}else{}
+}
+returnstatus;
+}
+
+EF_DRIVER_STATUSEF_UART_spaceAvailable(EF_UART_TYPE_PTRuart,bool*TXB_flag){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(TXB_flag==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifTXB_flagisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+uint32_tRIS_value;
+status=EF_UART_getRIS(uart,&RIS_value);
+if(status==EF_DRIVER_OK){
+*TXB_flag=(RIS_value&EF_UART_TXB_FLAG);//checkifTXFIFOlevelisbelowthevalueintheTXFIFOLevelThresholdRegister
+}else{}
+}
+returnstatus;
+}
+
+
+EF_DRIVER_STATUSEF_UART_getParityMode(EF_UART_TYPE_PTRuart,uint32_t*parity_mode){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(parity_mode==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifparity_modeisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+*parity_mode=(uart->CFG&EF_UART_CFG_REG_PARITY_MASK)>>EF_UART_CFG_REG_PARITY_BIT;
+}
+returnstatus;
+}
+
+EF_DRIVER_STATUSEF_UART_busy(EF_UART_TYPE_PTRuart,bool*busy_flag){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(busy_flag==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifbusy_flagisNULL,
+//i.e.thereisnomemorylocationtostorethevalue
+}else{
+uint32_tRIS_value;
+status=EF_UART_getRIS(uart,&RIS_value);
+if(status==EF_DRIVER_OK){
+*busy_flag=(RIS_value&EF_UART_TXE_FLAG)==(uint32_t)0x0;
+}else{}
+}
+returnstatus;
+}
-
+//todo:documentthethresholdisthefifomax
-#endif//EF_UART_C
-
-/******************************************************************************
-*EndofFile
-******************************************************************************/
+//FunctiontoinitializeandconfiguretheUART
+EF_DRIVER_STATUSUART_Init(EF_UART_TYPE_PTRuart,uint32_tbaud_rate,uint32_tbus_clock,uint32_tdata_bits,booltwo_stop_bits,enumparity_typeparity,uint32_ttimeout,uint32_trx_threshold,uint32_ttx_threshold){
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}
+
+//Calculateandsettheprescaler
+uint32_tprescaler=(bus_clock/(baud_rate*(uint32_t)8))-(uint32_t)1;
+if(status==EF_DRIVER_OK){status=EF_UART_setPrescaler(uart,prescaler);}else{}
+
+//Configuredatabits,stopbits,andparity
+
+//Setdatabits(5-9bits)
+if(status==EF_DRIVER_OK){status=EF_UART_setDataSize(uart,data_bits);}else{}
+
+//Setstopbits(1or2)
+if(status==EF_DRIVER_OK){status=EF_UART_setTwoStopBitsSelect(uart,two_stop_bits);}else{}
+
+//Setparitytype
+if(status==EF_DRIVER_OK){status=EF_UART_setParityType(uart,parity);}else{}
+
+//Setthereceivertimeoutvalue
+if(status==EF_DRIVER_OK){status=EF_UART_setTimeoutBits(uart,timeout);}else{}
+
+//SetRXandTXFIFOthresholds
+if(status==EF_DRIVER_OK){status=EF_UART_setRxFIFOThreshold(uart,rx_threshold);}else{}
+if(status==EF_DRIVER_OK){status=EF_UART_setTxFIFOThreshold(uart,tx_threshold);}else{}
+
+//EnabletheUARTandbothRXandTX
+if(status==EF_DRIVER_OK){status=EF_UART_enable(uart);}else{}
+if(status==EF_DRIVER_OK){status=EF_UART_setGclkEnable(uart,(uint32_t)1);}else{}
+if(status==EF_DRIVER_OK){status=EF_UART_enableRx(uart);}else{}
+if(status==EF_DRIVER_OK){status=EF_UART_enableTx(uart);}else{}
+
+//Optionallyenableglitchfilterandloopbackfortesting
+if(status==EF_DRIVER_OK){status=EF_UART_enableGlitchFilter(uart);}else{}
+if(status==EF_DRIVER_OK){status=EF_UART_enableLoopBack(uart);}else{}
+
+returnEF_DRIVER_OK;
+}
+
+
+//FunctiontoreceiveastringusingUART
+EF_DRIVER_STATUSEF_UART_readCharArr(EF_UART_TYPE_PTRuart,char*buffer,uint32_tbuffer_size){
+
+EF_DRIVER_STATUSstatus=EF_DRIVER_OK;
+
+if(uart==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifuartisNULL
+}elseif(buffer==NULL){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifbufferisNULL
+}elseif(buffer_size==(uint32_t)0){
+status=EF_DRIVER_ERROR_PARAMETER;//ReturnEF_DRIVER_ERROR_PARAMETERifbuffer_sizeis0
+}else{
+uint32_tindex=0;
+while(index<(buffer_size-(uint32_t)1)){
+booldata_available=false;
+status=EF_UART_charsAvailable(uart,&data_available);
+if(status!=EF_DRIVER_OK){break;}//returnonerror
+if(!data_available){continue;}//skipthisiterationandwaitfordata
+
+charreceived_char;
+status=EF_UART_readChar(uart,&received_char);
+if(status!=EF_DRIVER_OK){break;}//returnonerror
+
+buffer[index]=received_char;
+index++;
+if(received_char=='\n')break;//Stopreadingatnewline
+}
+buffer[index]='\0';//Null-terminatethestring
+}
+
+returnEF_DRIVER_OK;
+}
+
+
+
+/******************************************************************************
+*StaticFunctionDefinitions
+******************************************************************************/
+
+
+
+
+
+#endif//EF_UART_C
+
+/******************************************************************************
+*EndofFile
+******************************************************************************/
diff --git a/docs/doxygen/xml/_e_f___u_a_r_t_8h.xml b/docs/doxygen/xml/_e_f___u_a_r_t_8h.xml
index 0c800af..76ad6e0 100644
--- a/docs/doxygen/xml/_e_f___u_a_r_t_8h.xml
+++ b/docs/doxygen/xml/_e_f___u_a_r_t_8h.xml
@@ -5,7 +5,7 @@
EF_UART_regs.hEF_Driver_Common.hEF_UART.c
- example.c
+ EF_UART_example.h
@@ -54,9 +54,15 @@
+
+
+
+
-
-
+
+
+
+
@@ -576,7 +582,7 @@
-
+ EF_DRIVER_STATUS
@@ -625,7 +631,7 @@
-
+ EF_DRIVER_STATUS
@@ -667,7 +673,7 @@
-
+ EF_DRIVER_STATUS
@@ -710,7 +716,7 @@
-
+ EF_DRIVER_STATUS
@@ -1305,7 +1311,7 @@
-
+ EF_DRIVER_STATUS
@@ -1347,7 +1353,7 @@
-
+ EF_DRIVER_STATUS
@@ -1659,7 +1665,7 @@
-
+ EF_DRIVER_STATUS
@@ -1701,7 +1707,7 @@
-
+ EF_DRIVER_STATUS
@@ -1743,7 +1749,7 @@
-
+ EF_DRIVER_STATUS
@@ -1797,7 +1803,7 @@
-
+ EF_DRIVER_STATUS
@@ -1851,7 +1857,7 @@
-
+ EF_DRIVER_STATUS
@@ -1893,7 +1899,7 @@
-
+ EF_DRIVER_STATUS
@@ -1935,7 +1941,7 @@
-
+ EF_DRIVER_STATUS
@@ -1977,7 +1983,7 @@
-
+ EF_DRIVER_STATUS
@@ -2019,7 +2025,193 @@
-
+
+
+
+ EF_DRIVER_STATUS
+ EF_DRIVER_STATUS UART_Init
+ (EF_UART_TYPE_PTR uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum parity_type parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold)
+ UART_Init
+
+ EF_UART_TYPE_PTR
+ uart
+
+
+ uint32_t
+ baud_rate
+
+
+ uint32_t
+ bus_clock
+
+
+ uint32_t
+ data_bits
+
+
+ bool
+ two_stop_bits
+
+
+ enum parity_type
+ parity
+
+
+ uint32_t
+ timeout
+
+
+ uint32_t
+ rx_threshold
+
+
+ uint32_t
+ tx_threshold
+
+
+This function initializes the UART with the specified parameters.
+
+
+
+
+uart
+
+
+An EF_UART_TYPE_PTR , which points to the base memory address of UART registers. EF_UART_TYPE is a structure that contains the UART registers.
+
+
+
+
+baud_rate
+
+
+The baud rate of the UART
+
+
+
+
+bus_clock
+
+
+The bus clock frequency
+
+
+
+
+data_bits
+
+
+The number of data bits
+
+
+
+
+two_stop_bits
+
+
+A flag indicating if two stop bits are used
+
+
+
+
+parity
+
+
+The parity mode
+
+
+
+
+timeout
+
+
+The receiver timeout
+
+
+
+
+rx_threshold
+
+
+The receive FIFO threshold
+
+
+
+
+tx_threshold
+
+
+The transmit FIFO threshold
+
+
+
+status A value of type EF_DRIVER_STATUS : returns a success or error code
+
+
+
+
+
+
+
+
+ EF_DRIVER_STATUS
+ EF_DRIVER_STATUS EF_UART_readCharArr
+ (EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size)
+ EF_UART_readCharArr
+
+ EF_UART_TYPE_PTR
+ uart
+
+
+ char *
+ buffer
+
+
+ uint32_t
+ buffer_size
+
+
+
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size. This is a blocking function and can only terminate under the following conditions:
+The buffer is full
+A "\n" character is received
+An error is detected
+
+
+
+
+
+uart
+
+
+An EF_UART_TYPE_PTR , which points to the base memory address of UART registers. EF_UART_TYPE is a structure that contains the UART registers.
+
+
+
+
+buffer
+
+
+The buffer to store the received message
+
+
+
+
+buffer_size
+
+
+The size of the buffer
+
+
+
+status A value of type EF_DRIVER_STATUS : returns a success or error code
+
+
+
+
+
+
@@ -2260,17 +2452,24 @@
EF_DRIVER_STATUSEF_UART_busy(EF_UART_TYPE_PTRuart,bool*flag);
-
-/******************************************************************************
-*ExternalVariables
-******************************************************************************/
-
-
-#endif//EF_UART_H
-
-/******************************************************************************
-*EndofFile
-******************************************************************************/
+
+EF_DRIVER_STATUSUART_Init(EF_UART_TYPE_PTRuart,uint32_tbaud_rate,uint32_tbus_clock,uint32_tdata_bits,booltwo_stop_bits,enumparity_typeparity,uint32_ttimeout,uint32_trx_threshold,uint32_ttx_threshold);
+
+
+
+EF_DRIVER_STATUSEF_UART_readCharArr(EF_UART_TYPE_PTRuart,char*buffer,uint32_tbuffer_size);
+
+
+/******************************************************************************
+*ExternalVariables
+******************************************************************************/
+
+
+#endif//EF_UART_H
+
+/******************************************************************************
+*EndofFile
+******************************************************************************/
diff --git a/docs/doxygen/xml/_e_f___u_a_r_t__example_8c.xml b/docs/doxygen/xml/_e_f___u_a_r_t__example_8c.xml
new file mode 100644
index 0000000..7b6cee5
--- /dev/null
+++ b/docs/doxygen/xml/_e_f___u_a_r_t__example_8c.xml
@@ -0,0 +1,237 @@
+
+
+
+ EF_UART_example.c
+ EF_UART_example.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EF_UART_EXAMPLE_C
+
+
+
+
+
+
+
+
+
+ Example_UART_BASE_ADDRESS
+ 0x40000000
+
+
+
+
+
+
+
+
+
+ UART0
+ ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+
+
+
+
+
+
+
+
+
+
+ EF_DRIVER_STATUS
+ EF_DRIVER_STATUS EF_UART_example
+ (void)
+ EF_UART_example
+
+ void
+
+
+Example Usage Example usage:
+
+
+#include"EF_UART.h"
+
+#defineExample_UART_BASE_ADDRESS0x40000000
+#defineUART0((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+EF_DRIVER_STATUSEF_UART_example(void){
+EF_DRIVER_STATUSstatus;
+
+//InitializeUARTwithrequiredconfigurations
+status=UART_Init(UART0,9600,16000000,8,false,EVEN,10,4,4);
+if(status!=EF_DRIVER_OK){
+returnstatus;
+}
+
+//Transmitamessage
+constchar*message="Hello,UART!\n";
+status=EF_UART_writeCharArr(UART0,message);
+if(status!=EF_DRIVER_OK){
+//Handletransmissionerror
+returnstatus;
+}
+
+//Receiveamessage
+charbuffer[100];
+status=EF_UART_readCharArr(UART0,buffer,sizeof(buffer));
+if(status!=EF_DRIVER_OK){
+//Handlereceptionerror
+returnstatus;
+}
+returnEF_DRIVER_OK;
+}
+
+
+
+
+
+
+
+
+C file containing an example of how to use the UART APIs.
+
+
+C header file containing an example of how to use the UART APIs.
+
+
+/*
+Copyright2025EfablessCorp.
+
+
+LicensedundertheApacheLicense,Version2.0(the"License");
+youmaynotusethisfileexceptincompliancewiththeLicense.
+YoumayobtainacopyoftheLicenseat
+
+www.apache.org/licenses/LICENSE-2.0
+
+Unlessrequiredbyapplicablelaworagreedtoinwriting,software
+distributedundertheLicenseisdistributedonan"ASIS"BASIS,
+WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
+SeetheLicenseforthespecificlanguagegoverningpermissionsand
+limitationsundertheLicense.
+
+*/
+
+
+#ifndefEF_UART_EXAMPLE_C
+#defineEF_UART_EXAMPLE_C
+
+/******************************************************************************
+*Includes
+******************************************************************************/
+#include"EF_UART_example.h"
+
+/******************************************************************************
+*File-SpecificMacrosandConstants
+******************************************************************************/
+#defineExample_UART_BASE_ADDRESS0x40000000
+#defineUART0((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+
+/******************************************************************************
+*StaticVariables
+******************************************************************************/
+
+
+
+/******************************************************************************
+*StaticFunctionPrototypes
+******************************************************************************/
+
+
+
+/******************************************************************************
+*FunctionDefinitions
+******************************************************************************/
+
+EF_DRIVER_STATUSEF_UART_example(void){
+EF_DRIVER_STATUSstatus;
+
+//InitializeUARTwithrequiredconfigurations
+status=UART_Init(UART0,9600,16000000,8,false,EVEN,10,4,4);
+if(status!=EF_DRIVER_OK){
+returnstatus;
+}
+
+//Transmitamessage
+constchar*message="Hello,UART!\n";
+status=EF_UART_writeCharArr(UART0,message);
+if(status!=EF_DRIVER_OK){
+//Handletransmissionerror
+returnstatus;
+}
+
+//Receiveamessage
+charbuffer[100];
+status=EF_UART_readCharArr(UART0,buffer,sizeof(buffer));
+if(status!=EF_DRIVER_OK){
+//Handlereceptionerror
+returnstatus;
+}
+
+returnEF_DRIVER_OK;
+}
+
+/******************************************************************************
+*StaticFunctionDefinitions
+******************************************************************************/
+
+
+
+#endif//EF_UART_EXAMPLE_C
+
+/******************************************************************************
+*EndofFile
+******************************************************************************/
+
+
+
+
diff --git a/docs/doxygen/xml/_e_f___u_a_r_t__example_8h.xml b/docs/doxygen/xml/_e_f___u_a_r_t__example_8h.xml
new file mode 100644
index 0000000..707c81a
--- /dev/null
+++ b/docs/doxygen/xml/_e_f___u_a_r_t__example_8h.xml
@@ -0,0 +1,186 @@
+
+
+
+ EF_UART_example.h
+ EF_UART.h
+ EF_UART_example.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EF_DRIVER_STATUS
+ EF_DRIVER_STATUS EF_UART_example
+ (void)
+ EF_UART_example
+
+ void
+
+
+Example Usage Example usage:
+
+
+#include"EF_UART.h"
+
+#defineExample_UART_BASE_ADDRESS0x40000000
+#defineUART0((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+EF_DRIVER_STATUSEF_UART_example(void){
+EF_DRIVER_STATUSstatus;
+
+//InitializeUARTwithrequiredconfigurations
+status=UART_Init(UART0,9600,16000000,8,false,EVEN,10,4,4);
+if(status!=EF_DRIVER_OK){
+returnstatus;
+}
+
+//Transmitamessage
+constchar*message="Hello,UART!\n";
+status=EF_UART_writeCharArr(UART0,message);
+if(status!=EF_DRIVER_OK){
+//Handletransmissionerror
+returnstatus;
+}
+
+//Receiveamessage
+charbuffer[100];
+status=EF_UART_readCharArr(UART0,buffer,sizeof(buffer));
+if(status!=EF_DRIVER_OK){
+//Handlereceptionerror
+returnstatus;
+}
+returnEF_DRIVER_OK;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+Copyright2025EfablessCorp.
+
+
+LicensedundertheApacheLicense,Version2.0(the"License");
+youmaynotusethisfileexceptincompliancewiththeLicense.
+YoumayobtainacopyoftheLicenseat
+
+www.apache.org/licenses/LICENSE-2.0
+
+Unlessrequiredbyapplicablelaworagreedtoinwriting,software
+distributedundertheLicenseisdistributedonan"ASIS"BASIS,
+WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
+SeetheLicenseforthespecificlanguagegoverningpermissionsand
+limitationsundertheLicense.
+
+*/
+
+
+#ifndefEF_UART_EXAMPLE_H
+#defineEF_UART_EXAMPLE_H
+
+/******************************************************************************
+*Includes
+******************************************************************************/
+#include"EF_UART.h"
+
+/******************************************************************************
+*File-SpecificMacrosandConstants
+******************************************************************************/
+
+
+/******************************************************************************
+*StaticVariables
+******************************************************************************/
+
+
+
+/******************************************************************************
+*StaticFunctionPrototypes
+******************************************************************************/
+
+
+
+/******************************************************************************
+*FunctionDefinitions
+******************************************************************************/
+
+
+
+/******************************************************************************
+*ExampleUsage
+******************************************************************************/
+
+EF_DRIVER_STATUSEF_UART_example(void);
+
+/******************************************************************************
+*StaticFunctionDefinitions
+******************************************************************************/
+
+
+
+#endif//EF_UART_EXAMPLE_H
+
+/******************************************************************************
+*EndofFile
+******************************************************************************/
+
+
+
+
diff --git a/docs/doxygen/xml/_e_f___u_a_r_t__regs_8h.xml b/docs/doxygen/xml/_e_f___u_a_r_t__regs_8h.xml
index 48ebd28..2d9be31 100644
--- a/docs/doxygen/xml/_e_f___u_a_r_t__regs_8h.xml
+++ b/docs/doxygen/xml/_e_f___u_a_r_t__regs_8h.xml
@@ -44,16 +44,22 @@
+
+
+
+
+
+
+
+
+
+
-
-
-
- _EF_UART_TYPE_
diff --git a/docs/doxygen/xml/_r_e_a_d_m_e_8md.xml b/docs/doxygen/xml/_r_e_a_d_m_e_8md.xml
index 78c2872..7a42c02 100644
--- a/docs/doxygen/xml/_r_e_a_d_m_e_8md.xml
+++ b/docs/doxygen/xml/_r_e_a_d_m_e_8md.xml
@@ -13,6 +13,7 @@
-[EF_Driver_Common.h](#file-ef_driver_commonh)-[EF_UART.h](#file-ef_uarth)
+-[EF_UART_example.h](#file-ef_uart_exampleh)-[EF_UART_regs.h](#file-ef_uart_regsh)##FileEF_Driver_Common.h
@@ -144,6 +145,7 @@
|[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_getTxCount**](#function-ef_uart_gettxcount)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,uint32\_t\*TX\_FIFO\_LEVEL\_value)<br>_returnsthecurrentleveloftheTXFIFO(thenumberofbytesintheFIFO)_||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_getTxFIFOThreshold**](#function-ef_uart_gettxfifothreshold)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,uint32\_t\*TX\_FIFO\_THRESHOLD\_value)<br>_returnsthecurrentvalueoftheTXFIFOthreshold_||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_readChar**](#function-ef_uart_readchar)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uar,char\*RXDATA\_value)<br>_recieveasinglecharacterthroughuart_|
+|[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_readCharArr**](#function-ef_uart_readchararr)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,char\*buffer,uint32\_tbuffer\_size)<br>||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_readCharNonBlocking**](#function-ef_uart_readcharnonblocking)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,char\*RXDATA\_value,bool\*data\_available)<br>_Thisisanon-blockingfunctionthatreadsacharacterfromtheUARTreceiveFIFOifdataisavailableandreturnsastatuscode._||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_setCTRL**](#function-ef_uart_setctrl)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,uint32\_tvalue)<br>||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_setConfig**](#function-ef_uart_setconfig)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,uint32\_tconfig)<br>|
@@ -162,6 +164,7 @@
|[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_writeChar**](#function-ef_uart_writechar)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,chardata)<br>_transmitasinglecharacterthroughuart_||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_writeCharArr**](#function-ef_uart_writechararr)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,constchar\*char\_arr)<br>_transmitanarrayofcharactersthroughuart_||[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_writeCharNonBlocking**](#function-ef_uart_writecharnonblocking)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,chardata,bool\*data\_sent)<br>_Thisisanon-blockingfunctionthatwritesacharactertotheUARTtransmitFIFOiftheFIFOisnotfullandreturnsastatuscode._|
+|[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**UART\_Init**](#function-uart_init)([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr)uart,uint32\_tbaud\_rate,uint32\_tbus\_clock,uint32\_tdata\_bits,booltwo\_stop\_bits,enum[**parity\_type**](#enum-parity_type)parity,uint32\_ttimeout,uint32\_trx\_threshold,uint32\_ttx\_threshold)<br>_ThisfunctioninitializestheUARTwiththespecifiedparameters._|##Macros
@@ -743,6 +746,41 @@
**Returns:**statusAvalueoftype[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status):returnsasuccessorerrorcode
+###function`EF_UART_readCharArr`
+
+```c
+EF_DRIVER_STATUSEF_UART_readCharArr(
+EF_UART_TYPE_PTRuart,
+char*buffer,
+uint32_tbuffer_size
+)
+```
+
+
+ThisfunctionreceivesastringmessagefromtheUART.Themessageisstoredinabufferwithaspecifiedsize.
+
+**Note:**
+
+Thisisablockingfunctionandcanonlyterminateunderthefollowingconditions:
+
+*Thebufferisfull
+*A"\n"characterisreceived
+*Anerrorisdetected
+
+
+
+
+**Parameters:**
+
+
+*`uart`An[**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr),whichpointstothebasememoryaddressofUARTregisters.[**EF\_UART\_TYPE**](#typedef-ef_uart_type)isastructurethatcontainstheUARTregisters.
+*`buffer`Thebuffertostorethereceivedmessage
+*`buffer_size`Thesizeofthebuffer
+
+
+**Returns:**
+
+statusAvalueoftype[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status):returnsasuccessorerrorcode###function`EF_UART_readCharNonBlocking`_Thisisanon-blockingfunctionthatreadsacharacterfromtheUARTreceiveFIFOifdataisavailableandreturnsastatuscode._
@@ -1170,6 +1208,41 @@
**Returns:**statusAvalueoftype[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status):returnsasuccessorerrorcode
+###function`UART_Init`
+
+_ThisfunctioninitializestheUARTwiththespecifiedparameters._
+```c
+EF_DRIVER_STATUSUART_Init(
+EF_UART_TYPE_PTRuart,
+uint32_tbaud_rate,
+uint32_tbus_clock,
+uint32_tdata_bits,
+booltwo_stop_bits,
+enumparity_typeparity,
+uint32_ttimeout,
+uint32_trx_threshold,
+uint32_ttx_threshold
+)
+```
+
+
+**Parameters:**
+
+
+*`uart`An[**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr),whichpointstothebasememoryaddressofUARTregisters.[**EF\_UART\_TYPE**](#typedef-ef_uart_type)isastructurethatcontainstheUARTregisters.
+*`baud_rate`ThebaudrateoftheUART
+*`bus_clock`Thebusclockfrequency
+*`data_bits`Thenumberofdatabits
+*`two_stop_bits`Aflagindicatingiftwostopbitsareused
+*`parity`Theparitymode
+*`timeout`Thereceivertimeout
+*`rx_threshold`ThereceiveFIFOthreshold
+*`tx_threshold`ThetransmitFIFOthreshold
+
+
+**Returns:**
+
+statusAvalueoftype[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status):returnsasuccessorerrorcode##MacrosDocumentation
@@ -1240,6 +1313,68 @@
```
+##FileEF_UART_example.h
+
+
+
+
+
+
+##Functions
+
+|Type|Name|
+|---:|:---|
+|[**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status)|[**EF\_UART\_example**](#function-ef_uart_example)(void)<br>_ExampleUsageExampleusage:_|
+
+
+
+##FunctionsDocumentation
+
+###function`EF_UART_example`
+
+_ExampleUsageExampleusage:_
+```c
+EF_DRIVER_STATUSEF_UART_example(
+void
+)
+```
+
+
+````cpp
+#include"EF_UART.h"
+
+#defineExample_UART_BASE_ADDRESS0x40000000
+#defineUART0((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+EF_DRIVER_STATUSEF_UART_example(void){
+EF_DRIVER_STATUSstatus;
+
+//InitializeUARTwithrequiredconfigurations
+status=UART_Init(UART0,9600,16000000,8,false,EVEN,10,4,4);
+if(status!=EF_DRIVER_OK){
+returnstatus;
+}
+
+//Transmitamessage
+constchar*message="Hello,UART!\n";
+status=EF_UART_writeCharArr(UART0,message);
+if(status!=EF_DRIVER_OK){
+//Handletransmissionerror
+returnstatus;
+}
+
+//Receiveamessage
+charbuffer[100];
+status=EF_UART_readCharArr(UART0,buffer,sizeof(buffer));
+if(status!=EF_DRIVER_OK){
+//Handlereceptionerror
+returnstatus;
+}
+returnEF_DRIVER_OK;
+}
+````
+
+##FileEF_UART_regs.h
diff --git a/docs/doxygen/xml/index.xml b/docs/doxygen/xml/index.xml
index 5559831..0fdd1b8 100644
--- a/docs/doxygen/xml/index.xml
+++ b/docs/doxygen/xml/index.xml
@@ -78,6 +78,8 @@
EF_UART_spaceAvailableEF_UART_getParityModeEF_UART_busy
+ UART_Init
+ EF_UART_readCharArrEF_UART.hEF_UART_CTRL_REG_MAX_VALUE
@@ -140,6 +142,17 @@
EF_UART_spaceAvailableEF_UART_getParityModeEF_UART_busy
+ UART_Init
+ EF_UART_readCharArr
+
+ EF_UART_example.c
+ EF_UART_EXAMPLE_C
+ Example_UART_BASE_ADDRESS
+ UART0
+ EF_UART_example
+
+ EF_UART_example.h
+ EF_UART_exampleEF_UART_regs.hIO_TYPES
@@ -189,13 +202,6 @@
EF_UART_TYPEEF_UART_TYPE_PTR
- example.c
- Example_UART_BASE_ADDRESS
- UART0
- UART_Init
- UART_Receive
- main
- README.mdmd_README
diff --git a/docs/doxygen/xml/md__r_e_a_d_m_e.xml b/docs/doxygen/xml/md__r_e_a_d_m_e.xml
index d3d5a97..074706f 100644
--- a/docs/doxygen/xml/md__r_e_a_d_m_e.xml
+++ b/docs/doxygen/xml/md__r_e_a_d_m_e.xml
@@ -11,6 +11,7 @@
EF_Driver_Common.hEF_UART.h
+EF_UART_example.hEF_UART_regs.h
@@ -143,7 +144,7 @@
Functions
-
+
Type Name
@@ -274,6 +275,11 @@
**EF\_DRIVER\_STATUS**
+**EF\_UART\_readCharArr** (**EF\_UART\_TYPE\_PTR** uart, char *buffer, uint32_t buffer_size)
+
+
+
+**EF\_DRIVER\_STATUS** **EF\_UART\_readCharNonBlocking** (**EF\_UART\_TYPE\_PTR** uart, char *RXDATA_value, bool *data_available) This is a non-blocking function that reads a character from the UART receive FIFO if data is available and returns a status code.
@@ -360,7 +366,12 @@
**EF\_DRIVER\_STATUS** **EF\_UART\_writeCharNonBlocking** (**EF\_UART\_TYPE\_PTR** uart, char data, bool *data_sent)
-This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.
+This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.
+
+
+**EF\_DRIVER\_STATUS**
+**UART\_Init** (**EF\_UART\_TYPE\_PTR** uart, uint32_t baud_rate, uint32_t bus_clock, uint32_t data_bits, bool two_stop_bits, enum **parity\_type** parity, uint32_t timeout, uint32_t rx_threshold, uint32_t tx_threshold)
+This function initializes the UART with the specified parameters.
@@ -868,6 +879,33 @@
status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
+function <tt>EF_UART_readCharArr</tt>
+EF_DRIVER_STATUSEF_UART_readCharArr(
+EF_UART_TYPE_PTRuart,
+char*buffer,
+uint32_tbuffer_size
+)
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size.
+Note:
+This is a blocking function and can only terminate under the following conditions:
+
+The buffer is full
+A "\n" character is received
+An error is detected
+
+
+Parameters:
+
+uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
+buffer The buffer to store the received message
+buffer_size The size of the buffer
+
+
+Returns:
+status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
+
+function <tt>EF_UART_readCharNonBlocking</tt>This is a non-blocking function that reads a character from the UART receive FIFO if data is available and returns a status code.EF_DRIVER_STATUSEF_UART_readCharNonBlocking(EF_UART_TYPE_PTRuart,
@@ -885,7 +923,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setCTRL</tt>EF_DRIVER_STATUSEF_UART_setCTRL(EF_UART_TYPE_PTRuart,
@@ -910,7 +948,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setConfig</tt>EF_DRIVER_STATUSEF_UART_setConfig(EF_UART_TYPE_PTRuart,
@@ -934,7 +972,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setDataSize</tt>sets the Data Size (Data word length: 5-9 bits ) by setting the "wlen" field in configuration registerEF_DRIVER_STATUSEF_UART_setDataSize(EF_UART_TYPE_PTRuart,
@@ -950,7 +988,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setGclkEnable</tt>sets the GCLK enable bit in the UART register to a certain valueEF_DRIVER_STATUSEF_UART_setGclkEnable(EF_UART_TYPE_PTRuart,
@@ -966,7 +1004,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setICR</tt>EF_DRIVER_STATUSEF_UART_setICR(EF_UART_TYPE_PTRuart,
@@ -996,7 +1034,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setIM</tt>EF_DRIVER_STATUSEF_UART_setIM(EF_UART_TYPE_PTRuart,
@@ -1026,7 +1064,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setMatchData</tt>sets the matchData to a certain value at which "MATCH" interrupt will be raisedEF_DRIVER_STATUSEF_UART_setMatchData(EF_UART_TYPE_PTRuart,
@@ -1042,7 +1080,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setParityType</tt>sets the "parity" field in configuration register (could be none, odd, even, sticky 0 or sticky 1)EF_DRIVER_STATUSEF_UART_setParityType(EF_UART_TYPE_PTRuart,
@@ -1058,7 +1096,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setPrescaler</tt>sets the prescaler to a certain value where Baud_rate = Bus_Clock_Freq/((Prescaler+1)*16)EF_DRIVER_STATUSEF_UART_setPrescaler(EF_UART_TYPE_PTRuart,
@@ -1074,7 +1112,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setRxFIFOThreshold</tt>sets the RX FIFO threshold to a certain value at which "RXA" interrupt will be raisedEF_DRIVER_STATUSEF_UART_setRxFIFOThreshold(EF_UART_TYPE_PTRuart,
@@ -1090,7 +1128,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setTimeoutBits</tt>sets the "timeout" field in configuration register which is receiver timeout measured in number of bits at which the timeout flag will be raisedEF_DRIVER_STATUSEF_UART_setTimeoutBits(EF_UART_TYPE_PTRuart,
@@ -1106,7 +1144,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setTwoStopBitsSelect</tt>sets the "stp2" bit in configuration register (whether the stop boits are two or one)EF_DRIVER_STATUSEF_UART_setTwoStopBitsSelect(EF_UART_TYPE_PTRuart,
@@ -1122,7 +1160,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_setTxFIFOThreshold</tt>sets the TX FIFO threshold to a certain value at which "TXB" interrupt will be raisedEF_DRIVER_STATUSEF_UART_setTxFIFOThreshold(EF_UART_TYPE_PTRuart,
@@ -1138,7 +1176,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_spaceAvailable</tt>This function returns a flag indicating whether or not the transmit is available, i.e. the transmit FIFO is not full.EF_DRIVER_STATUSEF_UART_spaceAvailable(EF_UART_TYPE_PTRuart,
@@ -1154,7 +1192,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_writeChar</tt>transmit a single character through uartEF_DRIVER_STATUSEF_UART_writeChar(EF_UART_TYPE_PTRuart,
@@ -1170,7 +1208,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_writeCharArr</tt>transmit an array of characters through uartEF_DRIVER_STATUSEF_UART_writeCharArr(EF_UART_TYPE_PTRuart,
@@ -1186,7 +1224,7 @@
Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+function <tt>EF_UART_writeCharNonBlocking</tt>This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code.EF_DRIVER_STATUSEF_UART_writeCharNonBlocking(EF_UART_TYPE_PTRuart,
@@ -1202,71 +1240,160 @@
Returns:
+status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
+
+
+function <tt>UART_Init</tt>
+This function initializes the UART with the specified parameters.EF_DRIVER_STATUSUART_Init(
+EF_UART_TYPE_PTRuart,
+uint32_tbaud_rate,
+uint32_tbus_clock,
+uint32_tdata_bits,
+booltwo_stop_bits,
+enumparity_typeparity,
+uint32_ttimeout,
+uint32_trx_threshold,
+uint32_ttx_threshold
+)
+
+Parameters:
+
+uart An **EF\_UART\_TYPE\_PTR** , which points to the base memory address of UART registers.**EF\_UART\_TYPE** is a structure that contains the UART registers.
+baud_rate The baud rate of the UART
+bus_clock The bus clock frequency
+data_bits The number of data bits
+two_stop_bits A flag indicating if two stop bits are used
+parity The parity mode
+timeout The receiver timeout
+rx_threshold The receive FIFO threshold
+tx_threshold The transmit FIFO threshold
+
+
+Returns:status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code
-
+Macros Documentation
-
+define <tt>EF_UART_CFG_REG_MAX_VALUE</tt>#defineEF_UART_CFG_REG_MAX_VALUE((uint32_t)0x00001FFF)
-
+define <tt>EF_UART_CFG_REG_TIMEOUT_MAX_VALUE</tt>#defineEF_UART_CFG_REG_TIMEOUT_MAX_VALUE((uint32_t)0x0000003F)
-
+define <tt>EF_UART_CTRL_REG_MAX_VALUE</tt>#defineEF_UART_CTRL_REG_MAX_VALUE((uint32_t)0x0000001F)
-
+define <tt>EF_UART_DataLength_MAX_VALUE</tt>#defineEF_UART_DataLength_MAX_VALUE((uint32_t)0x00000009)
-
+define <tt>EF_UART_DataLength_MIN_VALUE</tt>#defineEF_UART_DataLength_MIN_VALUE((uint32_t)0x00000005)
-
+define <tt>EF_UART_IC_REG_MAX_VALUE</tt>#defineEF_UART_IC_REG_MAX_VALUE((uint32_t)0x000003FF)
-
+define <tt>EF_UART_IM_REG_MAX_VALUE</tt>#defineEF_UART_IM_REG_MAX_VALUE((uint32_t)0x000003FF)
-
+define <tt>EF_UART_MATCH_REG_MAX_VALUE</tt>#defineEF_UART_MATCH_REG_MAX_VALUE((uint32_t)0x00001FFF)
-
+define <tt>EF_UART_PR_REG_MAX_VALUE</tt>#defineEF_UART_PR_REG_MAX_VALUE((uint32_t)0x0000FFFF)
-
+define <tt>EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE</tt>#defineEF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE((uint32_t)0x0000000F)
-
+define <tt>EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE</tt>#defineEF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE((uint32_t)0x0000000F)
-
+
+File EF_UART_example.h
+
+
+Functions
+
-
+Structures and Types Documentation
-
+typedef <tt>EF_UART_TYPE</tt>typedefstruct_EF_UART_TYPE_EF_UART_TYPE;
-
+typedef <tt>EF_UART_TYPE_PTR</tt>typedefEF_UART_TYPE*EF_UART_TYPE_PTR;
-
+struct <tt>_EF_UART_TYPE_</tt>Variables:
@@ -1581,224 +1708,224 @@
-
+Macros Documentation
-
+define <tt>EF_UART_BRK_FLAG</tt>#defineEF_UART_BRK_FLAG((uint32_t)0x10)
-
+define <tt>EF_UART_CFG_REG_PARITY_BIT</tt>#defineEF_UART_CFG_REG_PARITY_BIT((uint32_t)5)
-
+define <tt>EF_UART_CFG_REG_PARITY_MASK</tt>#defineEF_UART_CFG_REG_PARITY_MASK((uint32_t)0xe0)
-
+define <tt>EF_UART_CFG_REG_STP2_BIT</tt>#defineEF_UART_CFG_REG_STP2_BIT((uint32_t)4)
-
+define <tt>EF_UART_CFG_REG_STP2_MASK</tt>#defineEF_UART_CFG_REG_STP2_MASK((uint32_t)0x10)
-
+define <tt>EF_UART_CFG_REG_TIMEOUT_BIT</tt>#defineEF_UART_CFG_REG_TIMEOUT_BIT((uint32_t)8)
-
+define <tt>EF_UART_CFG_REG_TIMEOUT_MASK</tt>#defineEF_UART_CFG_REG_TIMEOUT_MASK((uint32_t)0x3f)
-
+define <tt>EF_UART_CFG_REG_WLEN_BIT</tt>#defineEF_UART_CFG_REG_WLEN_BIT((uint32_t)0)
-
+define <tt>EF_UART_CFG_REG_WLEN_MASK</tt>#defineEF_UART_CFG_REG_WLEN_MASK((uint32_t)0xf)
-
+define <tt>EF_UART_CTRL_REG_EN_BIT</tt>#defineEF_UART_CTRL_REG_EN_BIT((uint32_t)0)
-
+define <tt>EF_UART_CTRL_REG_EN_MASK</tt>#defineEF_UART_CTRL_REG_EN_MASK((uint32_t)0x1)
-
+define <tt>EF_UART_CTRL_REG_GFEN_BIT</tt>#defineEF_UART_CTRL_REG_GFEN_BIT((uint32_t)4)
-
+define <tt>EF_UART_CTRL_REG_GFEN_MASK</tt>#defineEF_UART_CTRL_REG_GFEN_MASK((uint32_t)0x10)
-
+define <tt>EF_UART_CTRL_REG_LPEN_BIT</tt>#defineEF_UART_CTRL_REG_LPEN_BIT((uint32_t)3)
-
+define <tt>EF_UART_CTRL_REG_LPEN_MASK</tt>#defineEF_UART_CTRL_REG_LPEN_MASK((uint32_t)0x8)
-
+define <tt>EF_UART_CTRL_REG_RXEN_BIT</tt>#defineEF_UART_CTRL_REG_RXEN_BIT((uint32_t)2)
-
+define <tt>EF_UART_CTRL_REG_RXEN_MASK</tt>#defineEF_UART_CTRL_REG_RXEN_MASK((uint32_t)0x4)
-
+define <tt>EF_UART_CTRL_REG_TXEN_BIT</tt>#defineEF_UART_CTRL_REG_TXEN_BIT((uint32_t)1)
-
+define <tt>EF_UART_CTRL_REG_TXEN_MASK</tt>#defineEF_UART_CTRL_REG_TXEN_MASK((uint32_t)0x2)
-
+define <tt>EF_UART_FE_FLAG</tt>#defineEF_UART_FE_FLAG((uint32_t)0x40)
-
+define <tt>EF_UART_MATCH_FLAG</tt>#defineEF_UART_MATCH_FLAG((uint32_t)0x20)
-
+define <tt>EF_UART_OR_FLAG</tt>#defineEF_UART_OR_FLAG((uint32_t)0x100)
-
+define <tt>EF_UART_PRE_FLAG</tt>#defineEF_UART_PRE_FLAG((uint32_t)0x80)
-
+define <tt>EF_UART_RTO_FLAG</tt>#defineEF_UART_RTO_FLAG((uint32_t)0x200)
-
+define <tt>EF_UART_RXA_FLAG</tt>#defineEF_UART_RXA_FLAG((uint32_t)0x8)
-
+define <tt>EF_UART_RXF_FLAG</tt>#defineEF_UART_RXF_FLAG((uint32_t)0x2)
-
+define <tt>EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT</tt>#defineEF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT((uint32_t)0)
-
+define <tt>EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK</tt>#defineEF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK((uint32_t)0x1)
-
+define <tt>EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT</tt>#defineEF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT((uint32_t)0)
-
+define <tt>EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK</tt>#defineEF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK((uint32_t)0xf)
-
+define <tt>EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT</tt>#defineEF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT((uint32_t)0)
-
+define <tt>EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK</tt>#defineEF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK((uint32_t)0xf)
-
+define <tt>EF_UART_TXB_FLAG</tt>#defineEF_UART_TXB_FLAG((uint32_t)0x4)
-
+define <tt>EF_UART_TXE_FLAG</tt>#defineEF_UART_TXE_FLAG((uint32_t)0x1)
-
+define <tt>EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT</tt>#defineEF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT((uint32_t)0)
-
+define <tt>EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK</tt>#defineEF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK((uint32_t)0x1)
-
+define <tt>EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT</tt>#defineEF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT((uint32_t)0)
-
+define <tt>EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK</tt>#defineEF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK((uint32_t)0xf)
-
+define <tt>EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT</tt>#defineEF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT((uint32_t)0)
-
+define <tt>EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK</tt>#defineEF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK((uint32_t)0xf)
-
+define <tt>IO_TYPES</tt>#defineIO_TYPES
-
+define <tt>__R</tt>#define__Rvolatileconstuint32_t
-
+define <tt>__RW</tt>#define__RWvolatileuint32_t
-
+define <tt>__W</tt>#define__Wvolatileuint32_t
diff --git a/fw/EF_UART_example.c b/fw/EF_UART_example.c
index 29302dc..49d04d0 100644
--- a/fw/EF_UART_example.c
+++ b/fw/EF_UART_example.c
@@ -29,7 +29,7 @@
/******************************************************************************
* Includes
******************************************************************************/
-#include "EF_UART.h"
+#include "EF_UART_example.h"
/******************************************************************************
* File-Specific Macros and Constants
@@ -54,15 +54,13 @@
* Function Definitions
******************************************************************************/
-
-// Example usage
-int main() {
+EF_DRIVER_STATUS EF_UART_example(void){
EF_DRIVER_STATUS status;
// Initialize UART with required configurations
status = UART_Init(UART0, 9600, 16000000, 8, false, EVEN, 10, 4, 4);
if (status != EF_DRIVER_OK) {
- return -1;
+ return status;
}
// Transmit a message
@@ -70,21 +68,18 @@ int main() {
status = EF_UART_writeCharArr(UART0, message);
if (status != EF_DRIVER_OK) {
// Handle transmission error
- return -1;
+ return status;
}
// Receive a message
char buffer[100];
status = EF_UART_readCharArr(UART0, buffer, sizeof(buffer));
- if (status == EF_DRIVER_OK) {
- // Print received message
- printf("Received: %s\n", buffer);
- } else {
+ if (status != EF_DRIVER_OK) {
// Handle reception error
- return -1;
+ return status;
}
- return 0;
+ return EF_DRIVER_OK;
}
/******************************************************************************
diff --git a/fw/EF_UART_example.h b/fw/EF_UART_example.h
new file mode 100644
index 0000000..38d1512
--- /dev/null
+++ b/fw/EF_UART_example.h
@@ -0,0 +1,109 @@
+/*
+ Copyright 2025 Efabless Corp.
+
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+*/
+
+
+/*! \file EF_UART_example.c
+ \brief C header file containing an example of how to use the UART APIs
+
+*/
+
+
+#ifndef EF_UART_EXAMPLE_H
+#define EF_UART_EXAMPLE_H
+
+/******************************************************************************
+* Includes
+******************************************************************************/
+#include "EF_UART.h"
+
+/******************************************************************************
+* File-Specific Macros and Constants
+******************************************************************************/
+
+
+/******************************************************************************
+* Static Variables
+******************************************************************************/
+
+
+
+/******************************************************************************
+* Static Function Prototypes
+******************************************************************************/
+
+
+
+/******************************************************************************
+* Function Definitions
+******************************************************************************/
+
+
+
+/******************************************************************************
+* Example Usage
+******************************************************************************/
+
+/** @brief Example Usage
+ Example usage:
+ @code
+ #include "EF_UART.h"
+
+ #define Example_UART_BASE_ADDRESS 0x40000000
+ #define UART0 ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+ EF_DRIVER_STATUS EF_UART_example(void){
+ EF_DRIVER_STATUS status;
+
+ // Initialize UART with required configurations
+ status = UART_Init(UART0, 9600, 16000000, 8, false, EVEN, 10, 4, 4);
+ if (status != EF_DRIVER_OK) {
+ return status;
+ }
+
+ // Transmit a message
+ const char *message = "Hello, UART!\n";
+ status = EF_UART_writeCharArr(UART0, message);
+ if (status != EF_DRIVER_OK) {
+ // Handle transmission error
+ return status;
+ }
+
+ // Receive a message
+ char buffer[100];
+ status = EF_UART_readCharArr(UART0, buffer, sizeof(buffer));
+ if (status != EF_DRIVER_OK) {
+ // Handle reception error
+ return status;
+ }
+ return EF_DRIVER_OK;
+ }
+ @endcode
+ */
+EF_DRIVER_STATUS EF_UART_example(void);
+
+/******************************************************************************
+* Static Function Definitions
+******************************************************************************/
+
+
+
+#endif // EF_UART_EXAMPLE_H
+
+/******************************************************************************
+* End of File
+******************************************************************************/
diff --git a/fw/README.md b/fw/README.md
index fec3baf..e33cf79 100644
--- a/fw/README.md
+++ b/fw/README.md
@@ -4,6 +4,7 @@
- [EF_Driver_Common.h](#file-ef_driver_commonh)
- [EF_UART.h](#file-ef_uarth)
+- [EF_UART_example.h](#file-ef_uart_exampleh)
- [EF_UART_regs.h](#file-ef_uart_regsh)
## File EF_Driver_Common.h
@@ -135,6 +136,7 @@ _C header file for UART APIs which contains the function prototypes._
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_getTxCount**](#function-ef_uart_gettxcount) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, uint32\_t \*TX\_FIFO\_LEVEL\_value) _returns the current level of the TX FIFO (the number of bytes in the FIFO)_ |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_getTxFIFOThreshold**](#function-ef_uart_gettxfifothreshold) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, uint32\_t \*TX\_FIFO\_THRESHOLD\_value) _returns the current value of the TX FIFO threshold_ |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_readChar**](#function-ef_uart_readchar) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uar, char \*RXDATA\_value) _recieve a single character through uart_ |
+| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_readCharArr**](#function-ef_uart_readchararr) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, char \*buffer, uint32\_t buffer\_size) |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_readCharNonBlocking**](#function-ef_uart_readcharnonblocking) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, char \*RXDATA\_value, bool \*data\_available) _This is a non-blocking function that reads a character from the UART receive FIFO if data is available and returns a status code._ |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_setCTRL**](#function-ef_uart_setctrl) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, uint32\_t value) |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_setConfig**](#function-ef_uart_setconfig) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, uint32\_t config) |
@@ -153,6 +155,7 @@ _C header file for UART APIs which contains the function prototypes._
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_writeChar**](#function-ef_uart_writechar) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, char data) _transmit a single character through uart_ |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_writeCharArr**](#function-ef_uart_writechararr) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, const char \*char\_arr) _transmit an array of characters through uart_ |
| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_writeCharNonBlocking**](#function-ef_uart_writecharnonblocking) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, char data, bool \*data\_sent) _This is a non-blocking function that writes a character to the UART transmit FIFO if the FIFO is not full and returns a status code._ |
+| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**UART\_Init**](#function-uart_init) ([**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) uart, uint32\_t baud\_rate, uint32\_t bus\_clock, uint32\_t data\_bits, bool two\_stop\_bits, enum [**parity\_type**](#enum-parity_type) parity, uint32\_t timeout, uint32\_t rx\_threshold, uint32\_t tx\_threshold) _This function initializes the UART with the specified parameters._ |
## Macros
@@ -731,6 +734,41 @@ EF_DRIVER_STATUS EF_UART_readChar (
* `RXDATA_value` The value of the received character
+**Returns:**
+
+status A value of type [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) : returns a success or error code
+### function `EF_UART_readCharArr`
+
+```c
+EF_DRIVER_STATUS EF_UART_readCharArr (
+ EF_UART_TYPE_PTR uart,
+ char *buffer,
+ uint32_t buffer_size
+)
+```
+
+
+This function receives a string message from the UART. The message is stored in a buffer with a specified size.
+
+**Note:**
+
+This is a blocking function and can only terminate under the following conditions:
+
+* The buffer is full
+* A "\n" character is received
+* An error is detected
+
+
+
+
+**Parameters:**
+
+
+* `uart` An [**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) , which points to the base memory address of UART registers.[**EF\_UART\_TYPE**](#typedef-ef_uart_type) is a structure that contains the UART registers.
+* `buffer` The buffer to store the received message
+* `buffer_size` The size of the buffer
+
+
**Returns:**
status A value of type [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) : returns a success or error code
@@ -1158,6 +1196,41 @@ EF_DRIVER_STATUS EF_UART_writeCharNonBlocking (
* `data_sent` A flag indicating if the data was sent successfully
+**Returns:**
+
+status A value of type [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) : returns a success or error code
+### function `UART_Init`
+
+_This function initializes the UART with the specified parameters._
+```c
+EF_DRIVER_STATUS UART_Init (
+ EF_UART_TYPE_PTR uart,
+ uint32_t baud_rate,
+ uint32_t bus_clock,
+ uint32_t data_bits,
+ bool two_stop_bits,
+ enum parity_type parity,
+ uint32_t timeout,
+ uint32_t rx_threshold,
+ uint32_t tx_threshold
+)
+```
+
+
+**Parameters:**
+
+
+* `uart` An [**EF\_UART\_TYPE\_PTR**](#typedef-ef_uart_type_ptr) , which points to the base memory address of UART registers.[**EF\_UART\_TYPE**](#typedef-ef_uart_type) is a structure that contains the UART registers.
+* `baud_rate` The baud rate of the UART
+* `bus_clock` The bus clock frequency
+* `data_bits` The number of data bits
+* `two_stop_bits` A flag indicating if two stop bits are used
+* `parity` The parity mode
+* `timeout` The receiver timeout
+* `rx_threshold` The receive FIFO threshold
+* `tx_threshold` The transmit FIFO threshold
+
+
**Returns:**
status A value of type [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) : returns a success or error code
@@ -1231,6 +1304,68 @@ status A value of type [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) : ret
```
+## File EF_UART_example.h
+
+
+
+
+
+
+## Functions
+
+| Type | Name |
+| ---: | :--- |
+| [**EF\_DRIVER\_STATUS**](#typedef-ef_driver_status) | [**EF\_UART\_example**](#function-ef_uart_example) (void) _Example Usage Example usage:_ |
+
+
+
+## Functions Documentation
+
+### function `EF_UART_example`
+
+_Example Usage Example usage:_
+```c
+EF_DRIVER_STATUS EF_UART_example (
+ void
+)
+```
+
+
+````cpp
+#include "EF_UART.h"
+
+#define Example_UART_BASE_ADDRESS 0x40000000
+#define UART0 ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+EF_DRIVER_STATUS EF_UART_example(void){
+ EF_DRIVER_STATUS status;
+
+ // Initialize UART with required configurations
+ status = UART_Init(UART0, 9600, 16000000, 8, false, EVEN, 10, 4, 4);
+ if (status != EF_DRIVER_OK) {
+ return status;
+ }
+
+ // Transmit a message
+ const char *message = "Hello, UART!\n";
+ status = EF_UART_writeCharArr(UART0, message);
+ if (status != EF_DRIVER_OK) {
+ // Handle transmission error
+ return status;
+ }
+
+ // Receive a message
+ char buffer[100];
+ status = EF_UART_readCharArr(UART0, buffer, sizeof(buffer));
+ if (status != EF_DRIVER_OK) {
+ // Handle reception error
+ return status;
+ }
+ return EF_DRIVER_OK;
+}
+````
+
+
## File EF_UART_regs.h