diff --git a/docs/doxygen/html/_e_f___u_a_r_t_8c.html b/docs/doxygen/html/_e_f___u_a_r_t_8c.html index efed73f..37a1dcc 100644 --- a/docs/doxygen/html/_e_f___u_a_r_t_8c.html +++ b/docs/doxygen/html/_e_f___u_a_r_t_8c.html @@ -209,6 +209,11 @@ EF_DRIVER_STATUS EF_UART_busy (EF_UART_TYPE_PTR uart, bool *busy_flag)  This function checks id the UART is busy.
  +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.
+  +EF_DRIVER_STATUS EF_UART_readCharArr (EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size) + 

Detailed Description

C file for UART APIs which contains the function implmentations.

@@ -1096,6 +1101,55 @@

Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+

+ + +

◆ EF_UART_readCharArr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
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:
    +
  1. The buffer is full
  2. +
  3. A "\n" character is received
  4. +
  5. An error is detected
  6. +
+
+
Parameters
+ + + + +
[in]uartAn 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.
[out]bufferThe buffer to store the received message
[in]buffer_sizeThe size of the buffer
+
+
+
Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+
@@ -1825,6 +1879,93 @@

Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+ + + +

◆ UART_Init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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.

+
Parameters
+ + + + + + + + + + +
[in]uartAn 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.
[in]baud_rateThe baud rate of the UART
[in]bus_clockThe bus clock frequency
[in]data_bitsThe number of data bits
[in]two_stop_bitsA flag indicating if two stop bits are used
[in]parityThe parity mode
[in]timeoutThe receiver timeout
[in]rx_thresholdThe receive FIFO threshold
[in]tx_thresholdThe transmit FIFO threshold
+
+
+
Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+
diff --git a/docs/doxygen/html/_e_f___u_a_r_t_8h.html b/docs/doxygen/html/_e_f___u_a_r_t_8h.html index 017c994..7b16126 100644 --- a/docs/doxygen/html/_e_f___u_a_r_t_8h.html +++ b/docs/doxygen/html/_e_f___u_a_r_t_8h.html @@ -246,6 +246,11 @@ EF_DRIVER_STATUS EF_UART_busy (EF_UART_TYPE_PTR uart, bool *flag)  This function checks id the UART is busy.
  +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.
+  +EF_DRIVER_STATUS EF_UART_readCharArr (EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size) + 

Detailed Description

C header file for UART APIs which contains the function prototypes.

@@ -1295,6 +1300,55 @@

Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+

+ + +

◆ EF_UART_readCharArr()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
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:
    +
  1. The buffer is full
  2. +
  3. A "\n" character is received
  4. +
  5. An error is detected
  6. +
+
+
Parameters
+ + + + +
[in]uartAn 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.
[out]bufferThe buffer to store the received message
[in]buffer_sizeThe size of the buffer
+
+
+
Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+
@@ -2024,6 +2078,93 @@

Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+ + + +

◆ UART_Init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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.

+
Parameters
+ + + + + + + + + + +
[in]uartAn 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.
[in]baud_rateThe baud rate of the UART
[in]bus_clockThe bus clock frequency
[in]data_bitsThe number of data bits
[in]two_stop_bitsA flag indicating if two stop bits are used
[in]parityThe parity mode
[in]timeoutThe receiver timeout
[in]rx_thresholdThe receive FIFO threshold
[in]tx_thresholdThe transmit FIFO threshold
+
+
+
Returns
status A value of type EF_DRIVER_STATUS : returns a success or error code
+
diff --git a/docs/doxygen/html/_e_f___u_a_r_t_8h_source.html b/docs/doxygen/html/_e_f___u_a_r_t_8h_source.html index 3159308..f2778b5 100644 --- a/docs/doxygen/html/_e_f___u_a_r_t_8h_source.html +++ b/docs/doxygen/html/_e_f___u_a_r_t_8h_source.html @@ -304,27 +304,35 @@
548
549
-
550
-
551/******************************************************************************
-
552* External Variables
-
553******************************************************************************/
-
554
-
555
-
556#endif // EF_UART_H
-
557
-
558/******************************************************************************
-
559* End of File
-
560******************************************************************************/
+
551
+
564EF_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);
+
565
+
566
+
572
+
579EF_DRIVER_STATUS EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size);
+
580
+
581
+
582/******************************************************************************
+
583* External Variables
+
584******************************************************************************/
+
585
+
586
+
587#endif // EF_UART_H
+
588
+
589/******************************************************************************
+
590* End of File
+
591******************************************************************************/
C header file for common driver definitions and types.
uint32_t EF_DRIVER_STATUS
A type that is used to return the status of the driver functions.
Definition: EF_Driver_Common.h:53
-
EF_DRIVER_STATUS 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 registe...
Definition: EF_UART.c:269
-
EF_DRIVER_STATUS EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr)
transmit an array of characters through uart
Definition: EF_UART.c:607
+
EF_DRIVER_STATUS 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 registe...
Definition: EF_UART.c:268
+
EF_DRIVER_STATUS EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr)
transmit an array of characters through uart
Definition: EF_UART.c:609
EF_DRIVER_STATUS EF_UART_getMIS(EF_UART_TYPE_PTR uart, uint32_t *MIS_value)
Definition: EF_UART.c:523
-
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)
Definition: EF_UART.c:237
+
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)
Definition: EF_UART.c:236
EF_DRIVER_STATUS EF_UART_enableTx(EF_UART_TYPE_PTR uart)
enables using uart TX by setting uart "txen" bit in the control register to 1
Definition: EF_UART.c:123
-
EF_DRIVER_STATUS EF_UART_busy(EF_UART_TYPE_PTR uart, bool *flag)
This function checks id the UART is busy.
Definition: EF_UART.c:757
+
EF_DRIVER_STATUS EF_UART_busy(EF_UART_TYPE_PTR uart, bool *flag)
This function checks id the UART is busy.
Definition: EF_UART.c:764
+
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.
Definition: EF_UART.c:786
EF_DRIVER_STATUS EF_UART_enable(EF_UART_TYPE_PTR uart)
enables using uart by setting "en" bit in the control register to 1
Definition: EF_UART.c:70
-
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....
Definition: EF_UART.c:724
+
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....
Definition: EF_UART.c:731
EF_DRIVER_STATUS EF_UART_disableGlitchFilter(EF_UART_TYPE_PTR uart)
disables glitch filter (filter out noise or glitches on the received signal) by clearing "gfen" bit i...
Definition: EF_UART.c:190
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)
Definition: EF_UART.c:307
EF_DRIVER_STATUS EF_UART_disableRx(EF_UART_TYPE_PTR uart)
disables using uart RX by clearing uart "rxen" bit in the control register
Definition: EF_UART.c:110
@@ -333,18 +341,18 @@
EF_DRIVER_STATUS EF_UART_setConfig(EF_UART_TYPE_PTR uart, uint32_t config)
Definition: EF_UART.c:338
EF_DRIVER_STATUS EF_UART_getRxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_THRESHOLD_value)
returns the current value of the RX FIFO threshold
Definition: EF_UART.c:384
EF_DRIVER_STATUS EF_UART_setICR(EF_UART_TYPE_PTR uart, uint32_t mask)
Definition: EF_UART.c:572
-
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 ...
Definition: EF_UART.c:679
+
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 ...
Definition: EF_UART.c:686
EF_DRIVER_STATUS EF_UART_getRIS(EF_UART_TYPE_PTR uart, uint32_t *RIS_value)
Definition: EF_UART.c:507
EF_DRIVER_STATUS EF_UART_enableLoopBack(EF_UART_TYPE_PTR uart)
enables loopback (connecting TX to RX signal) by setting "lpen" bit in the control register to 1
Definition: EF_UART.c:149
EF_DRIVER_STATUS EF_UART_enableRx(EF_UART_TYPE_PTR uart)
enables using uart RX by setting uart "rxen" bit in the control register to 1
Definition: EF_UART.c:97
EF_DRIVER_STATUS EF_UART_disableTx(EF_UART_TYPE_PTR uart)
disables using uart TX by clearing uart "txen" bit in the control register
Definition: EF_UART.c:136
EF_DRIVER_STATUS EF_UART_getTxFIFOThreshold(EF_UART_TYPE_PTR uart, uint32_t *TX_FIFO_THRESHOLD_value)
returns the current value of the TX FIFO threshold
Definition: EF_UART.c:416
-
EF_DRIVER_STATUS EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value)
returns the value of the control register
Definition: EF_UART.c:220
-
EF_DRIVER_STATUS EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode)
This function return the parity mode of the UART.
Definition: EF_UART.c:743
+
EF_DRIVER_STATUS EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value)
returns the value of the control register
Definition: EF_UART.c:219
+
EF_DRIVER_STATUS EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode)
This function return the parity mode of the UART.
Definition: EF_UART.c:750
EF_DRIVER_STATUS EF_UART_disable(EF_UART_TYPE_PTR uart)
disables using uart by clearing "en" bit in the control register
Definition: EF_UART.c:84
-
EF_DRIVER_STATUS EF_UART_charsAvailable(EF_UART_TYPE_PTR uart, bool *flag)
This function returns a flag indicating whether or not there is data available in the receive FIFO.
Definition: EF_UART.c:706
-
EF_DRIVER_STATUS EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value)
returns the value of the prescaler
Definition: EF_UART.c:252
-
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 availabl...
Definition: EF_UART.c:650
+
EF_DRIVER_STATUS EF_UART_charsAvailable(EF_UART_TYPE_PTR uart, bool *flag)
This function returns a flag indicating whether or not there is data available in the receive FIFO.
Definition: EF_UART.c:713
+
EF_DRIVER_STATUS EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value)
returns the value of the prescaler
Definition: EF_UART.c:251
+
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 availabl...
Definition: EF_UART.c:657
EF_DRIVER_STATUS EF_UART_getRxCount(EF_UART_TYPE_PTR uart, uint32_t *RX_FIFO_LEVEL_value)
returns the current level of the RX FIFO (the number of bytes in the FIFO)
Definition: EF_UART.c:448
parity_type
Definition: EF_UART.h:57
@ STICKY_1
Definition: EF_UART.h:57
@@ -353,12 +361,13 @@
@ NONE
Definition: EF_UART.h:57
@ STICKY_0
Definition: EF_UART.h:57
EF_DRIVER_STATUS EF_UART_getIM(EF_UART_TYPE_PTR uart, uint32_t *IM_value)
Definition: EF_UART.c:555
-
EF_DRIVER_STATUS EF_UART_readChar(EF_UART_TYPE_PTR uar, char *RXDATA_value)
recieve a single character through uart
Definition: EF_UART.c:628
+
EF_DRIVER_STATUS EF_UART_readChar(EF_UART_TYPE_PTR uar, char *RXDATA_value)
recieve a single character through uart
Definition: EF_UART.c:632
+
EF_DRIVER_STATUS EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size)
Definition: EF_UART.c:830
EF_DRIVER_STATUS EF_UART_enableGlitchFilter(EF_UART_TYPE_PTR uart)
enables glitch filter (filter out noise or glitches on the received signal) by setting "gfen" bit in ...
Definition: EF_UART.c:176
EF_DRIVER_STATUS EF_UART_getTxCount(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)
Definition: EF_UART.c:432
EF_DRIVER_STATUS EF_UART_writeChar(EF_UART_TYPE_PTR uart, char data)
transmit a single character through uart
Definition: EF_UART.c:588
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 bi...
Definition: EF_UART.c:322
-
EF_DRIVER_STATUS EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value)
Definition: EF_UART.c:204
+
EF_DRIVER_STATUS EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value)
Definition: EF_UART.c:203
EF_DRIVER_STATUS EF_UART_setIM(EF_UART_TYPE_PTR uart, uint32_t mask)
Definition: EF_UART.c:539
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)
Definition: EF_UART.c:288
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
Definition: EF_UART.c:369
diff --git a/docs/doxygen/html/_e_f___u_a_r_t__example_8c.html b/docs/doxygen/html/_e_f___u_a_r_t__example_8c.html new file mode 100644 index 0000000..baa31ec --- /dev/null +++ b/docs/doxygen/html/_e_f___u_a_r_t__example_8c.html @@ -0,0 +1,211 @@ + + + + + + + +EF_UART APIs: EF_UART_example.c File Reference + + + + + + + + + +
+
+ + + + + + +
+
EF_UART APIs +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+ +
EF_UART_example.c File Reference
+
+
+ +

C file containing an example of how to use the UART APIs. +More...

+
#include "EF_UART_example.h"
+
+ + + + + + + +

+Macros

#define EF_UART_EXAMPLE_C
 
#define Example_UART_BASE_ADDRESS   0x40000000
 
#define UART0   ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
 
+ + + + +

+Functions

EF_DRIVER_STATUS EF_UART_example (void)
 Example Usage Example usage:
 
+

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.

+

Macro Definition Documentation

+ +

◆ EF_UART_EXAMPLE_C

+ +
+
+ + + + +
#define EF_UART_EXAMPLE_C
+
+ +
+
+ +

◆ Example_UART_BASE_ADDRESS

+ +
+
+ + + + +
#define Example_UART_BASE_ADDRESS   0x40000000
+
+ +
+
+ +

◆ UART0

+ +
+
+ + + + +
#define UART0   ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+ +
+
+

Function Documentation

+ +

◆ EF_UART_example()

+ +
+
+ + + + + + + + +
EF_DRIVER_STATUS EF_UART_example (void )
+
+ +

Example Usage Example usage:

+
#include "EF_UART.h"
+
+
#define Example_UART_BASE_ADDRESS 0x40000000
+
#define UART0 ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+ + +
+
// 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;
+
}
+
#define EF_DRIVER_OK
Operation succeeded.
Definition: EF_Driver_Common.h:40
+
uint32_t EF_DRIVER_STATUS
A type that is used to return the status of the driver functions.
Definition: EF_Driver_Common.h:53
+
EF_DRIVER_STATUS EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr)
transmit an array of characters through uart
Definition: EF_UART.c:609
+
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.
Definition: EF_UART.c:786
+
EF_DRIVER_STATUS EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size)
Definition: EF_UART.c:830
+
C header file for UART APIs which contains the function prototypes.
+
@ EVEN
Definition: EF_UART.h:57
+
#define UART0
Definition: EF_UART_example.c:38
+
EF_DRIVER_STATUS EF_UART_example(void)
Example Usage Example usage:
Definition: EF_UART_example.c:57
+
+
+
+
+ + + + diff --git a/docs/doxygen/html/_e_f___u_a_r_t__example_8h.html b/docs/doxygen/html/_e_f___u_a_r_t__example_8h.html new file mode 100644 index 0000000..547a735 --- /dev/null +++ b/docs/doxygen/html/_e_f___u_a_r_t__example_8h.html @@ -0,0 +1,154 @@ + + + + + + + +EF_UART APIs: EF_UART_example.h File Reference + + + + + + + + + +
+
+ + + + + + +
+
EF_UART APIs +
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+ +
EF_UART_example.h File Reference
+
+
+
#include "EF_UART.h"
+
+

Go to the source code of this file.

+ + + + + +

+Functions

EF_DRIVER_STATUS EF_UART_example (void)
 Example Usage Example usage:
 
+

Function Documentation

+ +

◆ EF_UART_example()

+ +
+
+ + + + + + + + +
EF_DRIVER_STATUS EF_UART_example (void )
+
+ +

Example Usage Example usage:

+
#include "EF_UART.h"
+
+
#define Example_UART_BASE_ADDRESS 0x40000000
+
#define UART0 ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
+
+ + +
+
// 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;
+
}
+
#define EF_DRIVER_OK
Operation succeeded.
Definition: EF_Driver_Common.h:40
+
uint32_t EF_DRIVER_STATUS
A type that is used to return the status of the driver functions.
Definition: EF_Driver_Common.h:53
+
EF_DRIVER_STATUS EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr)
transmit an array of characters through uart
Definition: EF_UART.c:609
+
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.
Definition: EF_UART.c:786
+
EF_DRIVER_STATUS EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size)
Definition: EF_UART.c:830
+
C header file for UART APIs which contains the function prototypes.
+
@ EVEN
Definition: EF_UART.h:57
+
#define UART0
Definition: EF_UART_example.c:38
+
EF_DRIVER_STATUS EF_UART_example(void)
Example Usage Example usage:
Definition: EF_UART_example.c:57
+
+
+
+
+ + + + diff --git a/docs/doxygen/html/_e_f___u_a_r_t__example_8h_source.html b/docs/doxygen/html/_e_f___u_a_r_t__example_8h_source.html new file mode 100644 index 0000000..51c65fa --- /dev/null +++ b/docs/doxygen/html/_e_f___u_a_r_t__example_8h_source.html @@ -0,0 +1,151 @@ + + + + + + + +EF_UART APIs: EF_UART_example.h Source File + + + + + + + + + +
+
+ + + + + + +
+
EF_UART APIs +
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
EF_UART_example.h
+
+
+Go to the documentation of this file.
1/*
+
2 Copyright 2025 Efabless Corp.
+
3
+
4
+
5 Licensed under the Apache License, Version 2.0 (the "License");
+
6 you may not use this file except in compliance with the License.
+
7 You may obtain a copy of the License at
+
8
+
9 www.apache.org/licenses/LICENSE-2.0
+
10
+
11 Unless required by applicable law or agreed to in writing, software
+
12 distributed under the License is distributed on an "AS IS" BASIS,
+
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
14 See the License for the specific language governing permissions and
+
15 limitations under the License.
+
16
+
17*/
+
18
+
19
+
26#ifndef EF_UART_EXAMPLE_H
+
27#define EF_UART_EXAMPLE_H
+
28
+
29/******************************************************************************
+
30* Includes
+
31******************************************************************************/
+
32#include "EF_UART.h"
+
33
+
34/******************************************************************************
+
35* File-Specific Macros and Constants
+
36******************************************************************************/
+
37
+
38
+
39/******************************************************************************
+
40* Static Variables
+
41******************************************************************************/
+
42
+
43
+
44
+
45/******************************************************************************
+
46* Static Function Prototypes
+
47******************************************************************************/
+
48
+
49
+
50
+
51/******************************************************************************
+
52* Function Definitions
+
53******************************************************************************/
+
54
+
55
+
56
+
57/******************************************************************************
+
58* Example Usage
+
59******************************************************************************/
+
60
+ +
98
+
99/******************************************************************************
+
100* Static Function Definitions
+
101******************************************************************************/
+
102
+
103
+
104
+
105#endif // EF_UART_EXAMPLE_H
+
106
+
107/******************************************************************************
+
108* End of File
+
109******************************************************************************/
+
uint32_t EF_DRIVER_STATUS
A type that is used to return the status of the driver functions.
Definition: EF_Driver_Common.h:53
+
C header file for UART APIs which contains the function prototypes.
+
EF_DRIVER_STATUS EF_UART_example(void)
Example Usage Example usage:
Definition: EF_UART_example.c:57
+
+ + + + diff --git a/docs/doxygen/html/files.html b/docs/doxygen/html/files.html index 1f0d342..e161624 100644 --- a/docs/doxygen/html/files.html +++ b/docs/doxygen/html/files.html @@ -77,8 +77,9 @@  EF_Driver_Common.hC header file for common driver definitions and types  EF_UART.cC file for UART APIs which contains the function implmentations  EF_UART.hC header file for UART APIs which contains the function prototypes - EF_UART_regs.h - example.c + EF_UART_example.cC file containing an example of how to use the UART APIs + EF_UART_example.h + EF_UART_regs.h diff --git a/docs/doxygen/html/globals.html b/docs/doxygen/html/globals.html index 9cc4b7c..e68e3f9 100644 --- a/docs/doxygen/html/globals.html +++ b/docs/doxygen/html/globals.html @@ -124,6 +124,8 @@

- e -

  • EF_UART_enableLoopBack() : EF_UART.c, EF_UART.h
  • EF_UART_enableRx() : EF_UART.c, EF_UART.h
  • EF_UART_enableTx() : EF_UART.c, EF_UART.h
  • +
  • EF_UART_example() : EF_UART_example.c, EF_UART_example.h
  • +
  • EF_UART_EXAMPLE_C : EF_UART_example.c
  • EF_UART_FE_FLAG : EF_UART_regs.h
  • EF_UART_getConfig() : EF_UART.c, EF_UART.h
  • EF_UART_getCTRL() : EF_UART.c, EF_UART.h
  • @@ -145,6 +147,7 @@

    - e -

    • EF_UART_PR_REG_MAX_VALUE : EF_UART.h
    • EF_UART_PRE_FLAG : EF_UART_regs.h
    • EF_UART_readChar() : EF_UART.c, EF_UART.h
    • +
    • EF_UART_readCharArr() : EF_UART.c, EF_UART.h
    • EF_UART_readCharNonBlocking() : EF_UART.c, EF_UART.h
    • EF_UART_RTO_FLAG : EF_UART_regs.h
    • EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT : EF_UART_regs.h
    • @@ -185,7 +188,7 @@

      - e -

      @@ -194,11 +197,6 @@

      - i -

      -

      - m -

      - -

      - n -

      @@ -221,9 +219,8 @@

      - s -

        - u -

        diff --git a/docs/doxygen/html/globals_defs.html b/docs/doxygen/html/globals_defs.html index ac381e8..75e485e 100644 --- a/docs/doxygen/html/globals_defs.html +++ b/docs/doxygen/html/globals_defs.html @@ -111,6 +111,7 @@

        - e -

        • EF_UART_CTRL_REG_TXEN_MASK : EF_UART_regs.h
        • EF_UART_DataLength_MAX_VALUE : EF_UART.h
        • EF_UART_DataLength_MIN_VALUE : EF_UART.h
        • +
        • EF_UART_EXAMPLE_C : EF_UART_example.c
        • EF_UART_FE_FLAG : EF_UART_regs.h
        • EF_UART_IC_REG_MAX_VALUE : EF_UART.h
        • EF_UART_IM_REG_MAX_VALUE : EF_UART.h
        • @@ -138,7 +139,7 @@

          - e -

          @@ -148,7 +149,7 @@

          - i -

            - u -

            diff --git a/docs/doxygen/html/globals_func.html b/docs/doxygen/html/globals_func.html index e474ea2..565d737 100644 --- a/docs/doxygen/html/globals_func.html +++ b/docs/doxygen/html/globals_func.html @@ -84,6 +84,7 @@

            - e -

            • EF_UART_enableLoopBack() : EF_UART.c, EF_UART.h
            • EF_UART_enableRx() : EF_UART.c, EF_UART.h
            • EF_UART_enableTx() : EF_UART.c, EF_UART.h
            • +
            • EF_UART_example() : EF_UART_example.c, EF_UART_example.h
            • EF_UART_getConfig() : EF_UART.c, EF_UART.h
            • EF_UART_getCTRL() : EF_UART.c, EF_UART.h
            • EF_UART_getIM() : EF_UART.c, EF_UART.h
            • @@ -97,6 +98,7 @@

              - e -

              • EF_UART_getTxCount() : EF_UART.c, EF_UART.h
              • EF_UART_getTxFIFOThreshold() : EF_UART.c, EF_UART.h
              • EF_UART_readChar() : EF_UART.c, EF_UART.h
              • +
              • EF_UART_readCharArr() : EF_UART.c, EF_UART.h
              • EF_UART_readCharNonBlocking() : EF_UART.c, EF_UART.h
              • EF_UART_setConfig() : EF_UART.c, EF_UART.h
              • EF_UART_setCTRL() : EF_UART.c, EF_UART.h
              • @@ -118,14 +120,8 @@

                - e -

                -

                - m -

                - -

                - u -

                diff --git a/docs/doxygen/html/md__r_e_a_d_m_e.html b/docs/doxygen/html/md__r_e_a_d_m_e.html index 6a517dd..d18f357 100644 --- a/docs/doxygen/html/md__r_e_a_d_m_e.html +++ b/docs/doxygen/html/md__r_e_a_d_m_e.html @@ -77,6 +77,7 @@
                • EF_Driver_Common.h
                • EF_UART.h
                • +
                • EF_UART_example.h
                • EF_UART_regs.h

                @@ -240,59 +241,65 @@

                **EF\_DRIVER\_STATUS** **EF\_UART\_readChar** (**EF\_UART\_TYPE\_PTR** uar, char *RXDATA_value)
                recieve a single character through uart +**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. - + **EF\_DRIVER\_STATUS** **EF\_UART\_setCTRL** (**EF\_UART\_TYPE\_PTR** uart, uint32_t value)
                - + **EF\_DRIVER\_STATUS** **EF\_UART\_setConfig** (**EF\_UART\_TYPE\_PTR** uart, uint32_t config)
                - + **EF\_DRIVER\_STATUS** **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\_DRIVER\_STATUS** **EF\_UART\_setICR** (**EF\_UART\_TYPE\_PTR** uart, uint32_t mask)
                - + **EF\_DRIVER\_STATUS** **EF\_UART\_setIM** (**EF\_UART\_TYPE\_PTR** uart, uint32_t mask)
                - + **EF\_DRIVER\_STATUS** **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.

                Macros

                @@ -358,7 +365,7 @@

                bool *flag
                )
                -
                EF_DRIVER_STATUS EF_UART_busy(EF_UART_TYPE_PTR uart, bool *busy_flag)
                This function checks id the UART is busy.
                Definition: EF_UART.c:757
                +
                EF_DRIVER_STATUS EF_UART_busy(EF_UART_TYPE_PTR uart, bool *busy_flag)
                This function checks id the UART is busy.
                Definition: EF_UART.c:764
                Definition: EF_UART_regs.h:86

                Parameters:

                  @@ -373,7 +380,7 @@

                  bool *flag
                  )
                  -
                  EF_DRIVER_STATUS EF_UART_charsAvailable(EF_UART_TYPE_PTR uart, bool *RXA_flag)
                  This function returns a flag indicating whether or not there is data available in the receive FIFO.
                  Definition: EF_UART.c:706
                  +
                  EF_DRIVER_STATUS EF_UART_charsAvailable(EF_UART_TYPE_PTR uart, bool *RXA_flag)
                  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.
                  • @@ -507,7 +514,7 @@

                    uint32_t *CTRL_value
                    )
                    -
                    EF_DRIVER_STATUS EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value)
                    returns the value of the control register
                    Definition: EF_UART.c:220
                    +
                    EF_DRIVER_STATUS EF_UART_getCTRL(EF_UART_TYPE_PTR uart, uint32_t *CTRL_value)
                    returns the value of the control register
                    Definition: EF_UART.c:219

                    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.
                    • @@ -603,7 +610,7 @@

                      uint32_t *parity_mode
                      )
                      -
                      EF_DRIVER_STATUS EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode)
                      This function return the parity mode of the UART.
                      Definition: EF_UART.c:743
                      +
                      EF_DRIVER_STATUS EF_UART_getParityMode(EF_UART_TYPE_PTR uart, uint32_t *parity_mode)
                      This function return the parity mode of the UART.
                      Definition: EF_UART.c:750

                      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.
                      • @@ -617,7 +624,7 @@

                        uint32_t *Prescaler_value
                        )
                        -
                        EF_DRIVER_STATUS EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value)
                        returns the value of the prescaler
                        Definition: EF_UART.c:252
                        +
                        EF_DRIVER_STATUS EF_UART_getPrescaler(EF_UART_TYPE_PTR uart, uint32_t *Prescaler_value)
                        returns the value of the prescaler
                        Definition: EF_UART.c:251

                        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.
                        • @@ -714,7 +721,7 @@

                          char *RXDATA_value
                          )
                          -
                          EF_DRIVER_STATUS EF_UART_readChar(EF_UART_TYPE_PTR uart, char *RXDATA_value)
                          recieve a single character through uart
                          Definition: EF_UART.c:628
                          +
                          EF_DRIVER_STATUS EF_UART_readChar(EF_UART_TYPE_PTR uart, char *RXDATA_value)
                          recieve a single character through uart
                          Definition: EF_UART.c:632

                          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.
                          • @@ -723,13 +730,37 @@

                            Returns:

                            status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code

                            +function <tt>EF_UART_readCharArr</tt>

                            +
                            + +
                            char *buffer,
                            +
                            uint32_t buffer_size
                            +
                            )
                            +
                            EF_DRIVER_STATUS EF_UART_readCharArr(EF_UART_TYPE_PTR uart, char *buffer, uint32_t buffer_size)
                            Definition: EF_UART.c:830
                            +

                            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.

                            char *RXDATA_value,
                            bool *data_available
                            )
                            -
                            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 availabl...
                            Definition: EF_UART.c:650
                            +
                            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 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

                            -

                            +

                            function <tt>EF_UART_setCTRL</tt>

                            uint32_t value
                            )
                            -
                            EF_DRIVER_STATUS EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value)
                            Definition: EF_UART.c:204
                            +
                            EF_DRIVER_STATUS EF_UART_setCTRL(EF_UART_TYPE_PTR uart, uint32_t value)
                            Definition: EF_UART.c:203

                            sets the control register to a certain value where

                            • bit 0: UART enable
                            • @@ -760,7 +791,7 @@

                            Returns:

                            status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code

                            -

                            +

                            function <tt>EF_UART_setConfig</tt>

                            @@ -781,13 +812,13 @@

                          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 register

                          uint32_t value
                          )
                          -
                          EF_DRIVER_STATUS 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 registe...
                          Definition: EF_UART.c:269
                          +
                          EF_DRIVER_STATUS 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 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

                        Returns:

                        status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code

                        -

                        +

                        function <tt>EF_UART_setICR</tt>

                        @@ -836,7 +867,7 @@

                      Returns:

                      status A value of type **EF\_DRIVER\_STATUS** : returns a success or error code

                      -

                      +

                      function <tt>EF_UART_setIM</tt>

                      @@ -863,7 +894,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 raised

                  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)

                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)

                uint32_t prescaler
                )
                -
                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)
                Definition: EF_UART.c:237
                +
                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)
                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

              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 raised

            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)

          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 raised

        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.

        bool *flag
        )
        -
        EF_DRIVER_STATUS EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *TXB_flag)
        This function returns a flag indicating whether or not the transmit is available, i....
        Definition: EF_UART.c:724
        +
        EF_DRIVER_STATUS EF_UART_spaceAvailable(EF_UART_TYPE_PTR uart, bool *TXB_flag)
        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

        -

        +

        function <tt>EF_UART_writeChar</tt>

        transmit a single character through uart

        @@ -989,13 +1020,13 @@

      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 uart

      const char *char_arr
      )
      -
      EF_DRIVER_STATUS EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr)
      transmit an array of characters through uart
      Definition: EF_UART.c:607
      +
      EF_DRIVER_STATUS EF_UART_writeCharArr(EF_UART_TYPE_PTR uart, const char *char_arr)
      transmit an array of characters through uart
      Definition: EF_UART.c:609

      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.
      • @@ -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.

      char data,
      bool *data_sent
      )
      -
      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 ...
      Definition: EF_UART.c:679
      +
      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 ...
      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.

      + +
      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_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.
      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

      -

      +

      Macros Documentation

      -

      +

      define <tt>EF_UART_CFG_REG_MAX_VALUE</tt>

      #define EF_UART_CFG_REG_MAX_VALUE ((uint32_t)0x00001FFF)
      -

      +

      define <tt>EF_UART_CFG_REG_TIMEOUT_MAX_VALUE</tt>

      #define EF_UART_CFG_REG_TIMEOUT_MAX_VALUE ((uint32_t)0x0000003F)
      -

      +

      define <tt>EF_UART_CTRL_REG_MAX_VALUE</tt>

      #define EF_UART_CTRL_REG_MAX_VALUE ((uint32_t)0x0000001F)
      -

      +

      define <tt>EF_UART_DataLength_MAX_VALUE</tt>

      #define EF_UART_DataLength_MAX_VALUE ((uint32_t)0x00000009)
      -

      +

      define <tt>EF_UART_DataLength_MIN_VALUE</tt>

      #define EF_UART_DataLength_MIN_VALUE ((uint32_t)0x00000005)
      -

      +

      define <tt>EF_UART_IC_REG_MAX_VALUE</tt>

      #define EF_UART_IC_REG_MAX_VALUE ((uint32_t)0x000003FF)
      -

      +

      define <tt>EF_UART_IM_REG_MAX_VALUE</tt>

      #define EF_UART_IM_REG_MAX_VALUE ((uint32_t)0x000003FF)
      -

      +

      define <tt>EF_UART_MATCH_REG_MAX_VALUE</tt>

      #define EF_UART_MATCH_REG_MAX_VALUE ((uint32_t)0x00001FFF)
      -

      +

      define <tt>EF_UART_PR_REG_MAX_VALUE</tt>

      #define EF_UART_PR_REG_MAX_VALUE ((uint32_t)0x0000FFFF)
      -

      +

      define <tt>EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE</tt>

      #define EF_UART_RX_FIFO_THRESHOLD_REG_MAX_VALUE ((uint32_t)0x0000000F)
      -

      +

      define <tt>EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE</tt>

      #define EF_UART_TX_FIFO_THRESHOLD_REG_MAX_VALUE ((uint32_t)0x0000000F)
      -

      +

      +File EF_UART_example.h

      +

      +Functions

      + + + + + +
      Type Name
      **EF\_DRIVER\_STATUS** **EF\_UART\_example** (void)
      +Example Usage Example usage:
      +

      +Functions Documentation

      +

      +function <tt>EF_UART_example</tt>

      +

      Example Usage Example usage:

      +
      void
      +
      )
      +
      EF_DRIVER_STATUS EF_UART_example(void)
      Example Usage Example usage:
      Definition: EF_UART_example.c:57
      +
      #include "EF_UART.h"
      +
      +
      #define Example_UART_BASE_ADDRESS 0x40000000
      +
      #define UART0 ((EF_UART_TYPE_PTR)Example_UART_BASE_ADDRESS)
      +
      + + +
      +
      // 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;
      +
      }
      +
      #define EF_DRIVER_OK
      Operation succeeded.
      Definition: EF_Driver_Common.h:40
      +
      C header file for UART APIs which contains the function prototypes.
      +
      #define UART0
      Definition: EF_UART_example.c:38
      +

      File EF_UART_regs.h

      -

      +

      Structures and Types

      @@ -1071,7 +1183,7 @@

      struct **\_EF\_UART\_TYPE\_**
      -

      +

      Macros

      @@ -1209,16 +1321,16 @@

      define **\_\_W** volatile uint32_t
      -

      +

      Structures and Types Documentation

      -

      +

      typedef <tt>EF_UART_TYPE</tt>

      -

      +

      typedef <tt>EF_UART_TYPE_PTR</tt>

      EF_UART_TYPE * EF_UART_TYPE_PTR
      Definition: EF_UART_regs.h:111
      -

      +

      struct <tt>_EF_UART_TYPE_</tt>

      Variables:

        @@ -1265,138 +1377,138 @@

      • **\_\_R** reserved_3
      -

      +

      Macros Documentation

      -

      +

      define <tt>EF_UART_BRK_FLAG</tt>

      #define EF_UART_BRK_FLAG ((uint32_t)0x10)
      -

      +

      define <tt>EF_UART_CFG_REG_PARITY_BIT</tt>

      #define EF_UART_CFG_REG_PARITY_BIT ((uint32_t)5)
      -

      +

      define <tt>EF_UART_CFG_REG_PARITY_MASK</tt>

      #define EF_UART_CFG_REG_PARITY_MASK ((uint32_t)0xe0)
      -

      +

      define <tt>EF_UART_CFG_REG_STP2_BIT</tt>

      #define EF_UART_CFG_REG_STP2_BIT ((uint32_t)4)
      -

      +

      define <tt>EF_UART_CFG_REG_STP2_MASK</tt>

      #define EF_UART_CFG_REG_STP2_MASK ((uint32_t)0x10)
      -

      +

      define <tt>EF_UART_CFG_REG_TIMEOUT_BIT</tt>

      #define EF_UART_CFG_REG_TIMEOUT_BIT ((uint32_t)8)
      -

      +

      define <tt>EF_UART_CFG_REG_TIMEOUT_MASK</tt>

      #define EF_UART_CFG_REG_TIMEOUT_MASK ((uint32_t)0x3f)
      -

      +

      define <tt>EF_UART_CFG_REG_WLEN_BIT</tt>

      #define EF_UART_CFG_REG_WLEN_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_CFG_REG_WLEN_MASK</tt>

      #define EF_UART_CFG_REG_WLEN_MASK ((uint32_t)0xf)
      -

      +

      define <tt>EF_UART_CTRL_REG_EN_BIT</tt>

      #define EF_UART_CTRL_REG_EN_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_CTRL_REG_EN_MASK</tt>

      #define EF_UART_CTRL_REG_EN_MASK ((uint32_t)0x1)
      -

      +

      define <tt>EF_UART_CTRL_REG_GFEN_BIT</tt>

      #define EF_UART_CTRL_REG_GFEN_BIT ((uint32_t)4)
      -

      +

      define <tt>EF_UART_CTRL_REG_GFEN_MASK</tt>

      #define EF_UART_CTRL_REG_GFEN_MASK ((uint32_t)0x10)
      -

      +

      define <tt>EF_UART_CTRL_REG_LPEN_BIT</tt>

      #define EF_UART_CTRL_REG_LPEN_BIT ((uint32_t)3)
      -

      +

      define <tt>EF_UART_CTRL_REG_LPEN_MASK</tt>

      #define EF_UART_CTRL_REG_LPEN_MASK ((uint32_t)0x8)
      -

      +

      define <tt>EF_UART_CTRL_REG_RXEN_BIT</tt>

      #define EF_UART_CTRL_REG_RXEN_BIT ((uint32_t)2)
      -

      +

      define <tt>EF_UART_CTRL_REG_RXEN_MASK</tt>

      #define EF_UART_CTRL_REG_RXEN_MASK ((uint32_t)0x4)
      -

      +

      define <tt>EF_UART_CTRL_REG_TXEN_BIT</tt>

      #define EF_UART_CTRL_REG_TXEN_BIT ((uint32_t)1)
      -

      +

      define <tt>EF_UART_CTRL_REG_TXEN_MASK</tt>

      #define EF_UART_CTRL_REG_TXEN_MASK ((uint32_t)0x2)
      -

      +

      define <tt>EF_UART_FE_FLAG</tt>

      #define EF_UART_FE_FLAG ((uint32_t)0x40)
      -

      +

      define <tt>EF_UART_MATCH_FLAG</tt>

      #define EF_UART_MATCH_FLAG ((uint32_t)0x20)
      -

      +

      define <tt>EF_UART_OR_FLAG</tt>

      #define EF_UART_OR_FLAG ((uint32_t)0x100)
      -

      +

      define <tt>EF_UART_PRE_FLAG</tt>

      #define EF_UART_PRE_FLAG ((uint32_t)0x80)
      -

      +

      define <tt>EF_UART_RTO_FLAG</tt>

      #define EF_UART_RTO_FLAG ((uint32_t)0x200)
      -

      +

      define <tt>EF_UART_RXA_FLAG</tt>

      #define EF_UART_RXA_FLAG ((uint32_t)0x8)
      -

      +

      define <tt>EF_UART_RXF_FLAG</tt>

      #define EF_UART_RXF_FLAG ((uint32_t)0x2)
      -

      +

      define <tt>EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT</tt>

      #define EF_UART_RX_FIFO_FLUSH_REG_FLUSH_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK</tt>

      #define EF_UART_RX_FIFO_FLUSH_REG_FLUSH_MASK ((uint32_t)0x1)
      -

      +

      define <tt>EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT</tt>

      #define EF_UART_RX_FIFO_LEVEL_REG_LEVEL_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK</tt>

      #define EF_UART_RX_FIFO_LEVEL_REG_LEVEL_MASK ((uint32_t)0xf)
      -

      +

      define <tt>EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT</tt>

      #define EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK</tt>

      #define EF_UART_RX_FIFO_THRESHOLD_REG_THRESHOLD_MASK ((uint32_t)0xf)
      -

      +

      define <tt>EF_UART_TXB_FLAG</tt>

      #define EF_UART_TXB_FLAG ((uint32_t)0x4)
      -

      +

      define <tt>EF_UART_TXE_FLAG</tt>

      #define EF_UART_TXE_FLAG ((uint32_t)0x1)
      -

      +

      define <tt>EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT</tt>

      #define EF_UART_TX_FIFO_FLUSH_REG_FLUSH_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK</tt>

      #define EF_UART_TX_FIFO_FLUSH_REG_FLUSH_MASK ((uint32_t)0x1)
      -

      +

      define <tt>EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT</tt>

      #define EF_UART_TX_FIFO_LEVEL_REG_LEVEL_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK</tt>

      #define EF_UART_TX_FIFO_LEVEL_REG_LEVEL_MASK ((uint32_t)0xf)
      -

      +

      define <tt>EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT</tt>

      #define EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_BIT ((uint32_t)0)
      -

      +

      define <tt>EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK</tt>

      #define EF_UART_TX_FIFO_THRESHOLD_REG_THRESHOLD_MASK ((uint32_t)0xf)
      -

      +

      define <tt>IO_TYPES</tt>

      #define IO_TYPES
      -

      +

      define <tt>__R</tt>

      #define __R volatile const uint32_t
      -

      +

      define <tt>__RW</tt>

      #define __RW volatile uint32_t
      -

      +

      define <tt>__W</tt>

      #define __W volatile uint32_t
      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);//Cleartheenablebitusingthespecifiedmask uart->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:makethisgenericbetween1and2bits EF_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);//Clearthefieldbitsintheregisterusingthedefinedmask uart->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.h EF_Driver_Common.h EF_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_spaceAvailable EF_UART_getParityMode EF_UART_busy + UART_Init + EF_UART_readCharArr EF_UART.h EF_UART_CTRL_REG_MAX_VALUE @@ -140,6 +142,17 @@ EF_UART_spaceAvailable EF_UART_getParityMode EF_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_example EF_UART_regs.h IO_TYPES @@ -189,13 +202,6 @@ EF_UART_TYPE EF_UART_TYPE_PTR - example.c - Example_UART_BASE_ADDRESS - UART0 - UART_Init - UART_Receive - main - README.md md_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.h EF_UART.h +EF_UART_example.h EF_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 register EF_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 value EF_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 raised EF_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 raised EF_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 raised EF_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 raised EF_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 uart EF_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 uart EF_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 + +Type +Name + + +**EF\_DRIVER\_STATUS** +**EF\_UART\_example** (void) +Example Usage Example usage: + +
      +
      +
      + +Functions Documentation + +function <tt>EF_UART_example</tt> +Example Usage Example usage: EF_DRIVER_STATUSEF_UART_example( +void +) + +#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; +} + + + + File EF_UART_regs.h - + Structures and Types Type @@ -1290,7 +1417,7 @@
      - + Macros Type @@ -1519,19 +1646,19 @@
      - + 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