Rev 13 | 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 | |||
| 15 | mjames | 8 | |
| 9 | |||
| 10 | /* Includes ------------------------------------------------------------------*/ |
||
| 11 | #include "stm32f1xx_hal.h" |
||
| 12 | |||
| 13 | |||
| 10 | mjames | 14 | #pragma once |
| 2 | mjames | 15 | |
| 15 | mjames | 16 | #include <stdint.h> |
| 12 | mjames | 17 | |
| 15 | mjames | 18 | #if defined __cplusplus |
| 19 | extern "C" |
||
| 20 | { |
||
| 21 | #endif |
||
| 12 | mjames | 22 | |
| 15 | mjames | 23 | |
| 24 | struct usart_ctl |
||
| 10 | mjames | 25 | { |
| 13 | mjames | 26 | /// @brief UART handle |
| 10 | mjames | 27 | UART_HandleTypeDef *Handle; |
| 13 | mjames | 28 | /// @brief Locally maintained transmit buffer |
| 15 | mjames | 29 | |
| 30 | volatile uint8_t * tx_usart_buff; |
||
| 31 | uint16_t tx_usart_buff_size; |
||
| 32 | uint16_t rx_usart_buff_size; |
||
| 33 | volatile uint16_t tx_usart_in_Ptr; |
||
| 34 | volatile uint16_t tx_usart_out_Ptr; |
||
| 35 | volatile uint16_t tx_usart_overruns; |
||
| 13 | mjames | 36 | /// @brief Set when the usart is transmitting |
| 2 | mjames | 37 | volatile uint8_t tx_usart_running; |
| 10 | mjames | 38 | |
| 13 | mjames | 39 | /// @brief Locally maintained receive buffer |
| 15 | mjames | 40 | volatile uint8_t * rx_usart_buff; |
| 41 | volatile uint16_t rx_usart_in_Ptr; |
||
| 42 | volatile uint16_t rx_usart_out_Ptr; |
||
| 13 | mjames | 43 | /// @brief Set when the receiver buffer is full |
| 2 | mjames | 44 | volatile uint8_t rx_usart_buffer_full; |
| 15 | mjames | 45 | } ; |
| 2 | mjames | 46 | |
| 10 | mjames | 47 | |
| 48 | |||
| 2 | mjames | 49 | #if defined SERIAL_UART1 |
| 15 | mjames | 50 | extern struct usart_ctl uc1; |
| 2 | mjames | 51 | #endif |
| 52 | #if defined SERIAL_UART2 |
||
| 15 | mjames | 53 | extern struct usart_ctl uc2; |
| 2 | mjames | 54 | #endif |
| 55 | #if defined SERIAL_UART3 |
||
| 15 | mjames | 56 | extern struct usart_ctl uc3; |
| 2 | mjames | 57 | #endif |
| 7 | mjames | 58 | #if defined SERIAL_UART4 |
| 15 | mjames | 59 | extern struct usart_ctl uc4; |
| 7 | mjames | 60 | #endif |
| 61 | #if defined SERIAL_UART5 |
||
| 15 | mjames | 62 | extern struct usart_ctl uc5; |
| 7 | mjames | 63 | #endif |
| 13 | mjames | 64 | /// @brief Establish this instance as being in control of a USART |
| 65 | /// @param instance Pointer to usart_ctl structure |
||
| 66 | /// @param usart Handle to usart maintained by HAL |
||
| 15 | mjames | 67 | /// @param tx_buffer Statically allocated memory for Tx buffer |
| 68 | /// @param rx_buffer Statically allocated memory for Rx buffer |
||
| 69 | /// @param rx_buffer_size Rx Buffer size |
||
| 70 | /// @param tx_buffer_size Tx Buffer size |
||
| 71 | extern void init_usart_ctl(struct usart_ctl *instance, |
||
| 72 | UART_HandleTypeDef *usart, |
||
| 73 | volatile uint8_t * tx_buffer, |
||
| 74 | volatile uint8_t * rx_buffer, |
||
| 75 | uint16_t tx_buffer_size, |
||
| 76 | uint16_t rx_buffer_size); |
||
| 2 | mjames | 77 | |
| 13 | mjames | 78 | |
| 79 | |||
| 15 | mjames | 80 | #if defined __cplusplus |
| 81 | } |
||
| 82 | #endif |
||
| 83 | |||
| 84 | #include "serialCalls.h" |
||
| 85 |