LED clock
 All Files Functions Variables Macros Groups Pages
Macros | Functions | Variables
usart.c File Reference

library for USART communication (code) More...

Go to the source code of this file.

Macros

#define USART   USART1
 
#define USART_RCC   RCC_USART1
 
#define USART_IRQ   NVIC_USART1_IRQ
 
#define USART_ISR   usart1_isr
 
#define USART_PORT   GPIOA
 
#define USART_PORT_RCC   RCC_GPIOA
 
#define USART_PIN_TX   GPIO_USART1_TX
 
#define USART_PIN_RX   GPIO_USART1_RX
 
#define USART_BAUDRATE   115200
 

Functions

void usart_setup (void)
 setup USART peripheral
 
void usart_putchar_blocking (char c)
 send character over USART (blocking) More...
 
void usart_flush (void)
 ensure all data has been transmitted (blocking) More...
 
char usart_getchar (void)
 get character received over USART (blocking) More...
 
void usart_putchar_nonblocking (char c)
 send character over USART (non-blocking) More...
 
void USART_ISR (void)
 USART interrupt service routine called when data has been transmitted or received.
 

Variables

static uint8_t rx_buffer [USART_BUFFER] = {0}
 
static volatile uint8_t rx_i = 0
 
static volatile uint8_t rx_used = 0
 
static uint8_t tx_buffer [USART_BUFFER] = {0}
 
static volatile uint8_t tx_i = 0
 
static volatile uint8_t tx_used = 0
 
volatile uint8_t usart_received = 0
 

Detailed Description

library for USART communication (code)

Author
King Kévin kingk.nosp@m.evin.nosp@m.@cuvo.nosp@m.odoo.nosp@m..info
Date
2016
Note
peripherals used: USART USART peripheral used for UART communication

Definition in file usart.c.

Macro Definition Documentation

#define USART_BAUDRATE   115200

serial baudrate, in bits per second (with 8N1 8 bits, no parity bit, 1 stop bit settings)

Definition at line 49 of file usart.c.

Function Documentation

void usart_flush ( void  )

ensure all data has been transmitted (blocking)

Note
block until all data has been transmitted

Definition at line 95 of file usart.c.

char usart_getchar ( void  )

get character received over USART (blocking)

Returns
character received over USART
Note
blocks until character is received over USART when received buffer is empty

Definition at line 103 of file usart.c.

void usart_putchar_blocking ( char  c)

send character over USART (blocking)

Parameters
[in]ccharacter to send
Note
blocks until character transmission started

Definition at line 89 of file usart.c.

void usart_putchar_nonblocking ( char  c)

send character over USART (non-blocking)

Parameters
[in]ccharacter to send
Note
blocks if transmit buffer is full, else puts in buffer and returns

Definition at line 117 of file usart.c.

Variable Documentation

uint8_t rx_buffer[USART_BUFFER] = {0}
static

ring buffer for received data

Definition at line 52 of file usart.c.

volatile uint8_t rx_i = 0
static

current position of read received data

Definition at line 53 of file usart.c.

volatile uint8_t rx_used = 0
static

how much data has been received and not red

Definition at line 54 of file usart.c.

uint8_t tx_buffer[USART_BUFFER] = {0}
static

ring buffer for data to transmit

Definition at line 55 of file usart.c.

volatile uint8_t tx_i = 0
static

current position if transmitted data

Definition at line 56 of file usart.c.

volatile uint8_t tx_used = 0
static

how much data needs to be transmitted

Definition at line 57 of file usart.c.

volatile uint8_t usart_received = 0

how many bytes available in the received buffer since last read

Definition at line 58 of file usart.c.