Subversion Repositories libSerial

Rev

Rev 3 | Rev 5 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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 {
  14.         USART_TypeDef *Instance;
  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
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. /* returns the number of characters received by the Rx USART */
  44. extern uint16_t SerialCharsReceived(usart_ctl * instance);
  45.  
  46. extern uint8_t PollSerial(usart_ctl * instance);
  47. extern uint8_t GetCharSerial(usart_ctl * instance);
  48. extern void EnableSerialRxInterrupt(usart_ctl * instance);
  49.  
  50. extern void UART_IRQHandler(usart_ctl * instance);
  51.  
  52. extern void PutCharSerial(usart_ctl * instance,uint8_t c);
  53. extern void ResetTxBuffer(usart_ctl * instance);
  54. extern void ResetRxBuffer(usart_ctl * instance);
  55. extern void FlushSerial(usart_ctl * instance);
  56. extern uint8_t  TxBufferEmpty(usart_ctl * instance);
  57. ///@brief  wait until the USART buffer is empty and all characters are sent
  58. extern void TxWaitEmpty(usart_ctl *instance);
  59.  
  60.  
  61. extern void init_usart_ctl(usart_ctl * instance,
  62.                            USART_TypeDef * usart);
  63.  
  64.  
  65.  
  66. #endif /* INC_SERIAL_H_ */
  67.