Advertisement
teplofizik

uart.h (DMX)

May 27th, 2013
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.78 KB | None | 0 0
  1. //
  2. // Драйвер UART
  3. //
  4.  
  5. #include <stdint.h>
  6. #include <stdbool.h>
  7.  
  8. #ifndef _UART_H
  9. #define _UART_H
  10.  
  11.     typedef enum
  12.     {
  13.         UART1
  14.     } TUart;
  15.  
  16.     typedef enum
  17.     {
  18.         UART_EVENT_ONBREAK,
  19.         UART_EVENT_ONRECEIVE,
  20.         UART_EVENT_ONTRANSMITTED,
  21.         UART_EVENT_ONTRANSMITCOMPLETED
  22.     } TUartEvent;
  23.    
  24.     typedef enum
  25.     {
  26.         STOP_BITS_0_5,
  27.         STOP_BITS_1,
  28.         STOP_BITS_1_5,
  29.         STOP_BITS_2
  30.     } TUartStopBits;
  31.    
  32.     // Инициализация модуля USART
  33.     void uart_Init(TUart Uart, uint32_t BaudRate);
  34.  
  35.     // Установить номер порта (для обратной связи)
  36.     void uart_SetPortIndex(TUart Uart, uint32_t Index);
  37.    
  38.     // Режим GPIO  при передаче (заданное состояние линии TX)
  39.     void uart_GPIOMode(TUart Uart, bool Value);
  40.    
  41.     // Режим передачи данных
  42.     void uart_UARTMode(TUart Uart);
  43.    
  44.     // Отправка байта
  45.     void uart_SendByte(TUart Uart, uint8_t Data);
  46.    
  47.     // Отправка буфера
  48.     void uart_Send(TUart Uart, uint8_t * Data, int32_t BytesToSend, int32_t * BytesSended);
  49.    
  50.     // Установить скорость передачи
  51.     void uart_SetBaudrate(TUart Uart, uint32_t Baudrate);
  52.    
  53.    // Количество стоповых бит
  54.     void uart_StopBits(TUart Uart, TUartStopBits StopBits);
  55.    
  56.     // Разрешить прим
  57.     void uart_ReceiveEnable(TUart Uart, bool Enable);
  58.    
  59.     // Разрешить передачу
  60.     void uart_TransmitEnable(TUart Uart, bool Enable);
  61.    
  62.     // Установить обработчик
  63.     void uart_SetHandler(TUart Uart, TUartEvent Event, void * Handler);
  64.    
  65. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement