Subversion Repositories libSerial

Rev

Rev 7 | Rev 10 | 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.         UART_HandleTypeDef * Handle;
  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. #if defined SERIAL_UART4
  38. extern usart_ctl uc4;
  39. #endif
  40. #if defined SERIAL_UART5
  41. extern usart_ctl uc5;
  42. #endif
  43.  
  44.  
  45.  
  46.  
  47.  
  48. ///@brief  returns the number of characters in the recieve buffer
  49. extern uint16_t SerialCharsReceived(usart_ctl * instance);
  50. ///@brief Get the amount of free space in the transmit buffer.
  51. extern uint16_t SerialTransmitSpace(usart_ctl * instance);
  52.  
  53.  
  54. extern uint8_t PollSerial(usart_ctl * instance);
  55. extern uint8_t GetCharSerial(usart_ctl * instance);
  56. extern void EnableSerialRxInterrupt(usart_ctl * instance);
  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);
  65. ///@brief  wait until the USART buffer is empty and all characters are sent
  66. extern void TxWaitEmpty(usart_ctl *instance);
  67.  
  68.  
  69.  
  70. extern void init_usart_ctl(usart_ctl * instance,
  71.                            UART_HandleTypeDef  * usart);
  72.  
  73. extern void setBaud(usart_ctl * instance, uint32_t baud);
  74.  
  75.  
  76. extern void sendString(usart_ctl *ctl, char const *string, int length);
  77.  
  78. #endif /* INC_SERIAL_H_ */
  79.