PSDR/Source/include/uart.h

66 lines
1.6 KiB
C

/* uart.h
*
* gunbox uart interface
*
* Copyright 2013 RPH Engineering, VPI Engineering
*/
#ifndef UART_H_
#define UART_H_
#include <stdint.h>
enum Uarts
{
uart_uartNone,
uart_uart1,
uart_uart2,
uart_uart3,
};
int uart_putChar(uint8_t uart, char c);
// enqueue a char to a uart
// returns 0 on success
int uart_getChar(uint8_t uart, char* c);
// dequeue a char from a uart and put it in *c
// returns 0 on success
int uart_write(uint8_t uart, uint8_t* buffer, uint8_t size);
// write a buffer of data to a uart
// return the number of bytes written
int uart_read(uint8_t uart, uint8_t* buffer, uint8_t size);
// try to read size bytes of data into buffer from a uart
// return the number of bytes read
void uart_init(uint8_t uart);
// initialize specified uart
void uart_deinit(uint8_t uart);
// deinitialize specified uart
void uart_enable(uint8_t uart);
// enable a uart, enables rxne interrupt, does not set other config info
void uart_disable(uint8_t uart);
// disable a uart and the uart rxne and txe itnerrupts but leave registers setup
void uart_purgeRxQueue(uint8_t uart);
// purge the rx q for uart
int uart_getRxQueueCount(uint8_t uart);
// get the count for the rx q for uart
int uart_queueHasChar(char c, uint8_t uart);
// return true if the rx q contains c
int uart_queueContains(char thingToFind[], int thingToFindLength, uint8_t);
#endif /* UART_H_ */