Subversion Repositories libSerial

Rev

Rev 7 | Rev 10 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/*
2
 * serial.h
3
 *
4
 *  Created on: 4 Jan 2016
5
 *      Author: Mike
6
 */
7
 
8
#ifndef INC_SERIAL_H_
9
#define INC_SERIAL_H_
10
 
11
#include "main.h"
12
 
13
typedef struct {
5 mjames 14
        UART_HandleTypeDef * Handle;
2 mjames 15
 
16
        volatile uint8_t tx_usart_buff[TX_USART_BUFF_SIZ];
17
        volatile unsigned int tx_usart_in_Ptr;
18
        volatile unsigned int tx_usart_out_Ptr;
19
        volatile uint8_t tx_usart_running;
20
        volatile uint16_t tx_usart_count;
21
 
22
        volatile uint8_t rx_usart_buff[RX_USART_BUFF_SIZ];
23
        volatile unsigned int rx_usart_in_Ptr;
24
        volatile unsigned int rx_usart_out_Ptr;
25
        volatile uint8_t rx_usart_buffer_full;
26
} usart_ctl;
27
 
28
#if defined SERIAL_UART1
29
extern usart_ctl uc1;
30
#endif
31
#if defined SERIAL_UART2
32
extern usart_ctl uc2;
33
#endif
34
#if defined SERIAL_UART3
35
extern usart_ctl uc3;
36
#endif
7 mjames 37
#if defined SERIAL_UART4
38
extern usart_ctl uc4;
39
#endif
40
#if defined SERIAL_UART5
41
extern usart_ctl uc5;
42
#endif
2 mjames 43
 
44
 
45
 
46
 
47
 
7 mjames 48
///@brief  returns the number of characters in the recieve buffer
2 mjames 49
extern uint16_t SerialCharsReceived(usart_ctl * instance);
7 mjames 50
///@brief Get the amount of free space in the transmit buffer. 
51
extern uint16_t SerialTransmitSpace(usart_ctl * instance);
2 mjames 52
 
7 mjames 53
 
3 mjames 54
extern uint8_t PollSerial(usart_ctl * instance);
2 mjames 55
extern uint8_t GetCharSerial(usart_ctl * instance);
3 mjames 56
extern void EnableSerialRxInterrupt(usart_ctl * instance);
2 mjames 57
 
58
extern void UART_IRQHandler(usart_ctl * instance);
59
 
60
extern void PutCharSerial(usart_ctl * instance,uint8_t c);
61
extern void ResetTxBuffer(usart_ctl * instance);
62
extern void ResetRxBuffer(usart_ctl * instance);
63
extern void FlushSerial(usart_ctl * instance);
64
extern uint8_t  TxBufferEmpty(usart_ctl * instance);
4 mjames 65
///@brief  wait until the USART buffer is empty and all characters are sent
66
extern void TxWaitEmpty(usart_ctl *instance);
2 mjames 67
 
68
 
7 mjames 69
 
4 mjames 70
extern void init_usart_ctl(usart_ctl * instance,
5 mjames 71
                           UART_HandleTypeDef  * usart);
2 mjames 72
 
5 mjames 73
extern void setBaud(usart_ctl * instance, uint32_t baud);
4 mjames 74
 
8 mjames 75
 
76
extern void sendString(usart_ctl *ctl, char const *string, int length);
77
 
2 mjames 78
#endif /* INC_SERIAL_H_ */