38
+ − 1 /**
+ − 2 ******************************************************************************
+ − 3 * @file uart.h
+ − 4 * @author heinrichs weikamp gmbh
+ − 5 * @version V0.0.1
+ − 6 * @date 27-March-2014
+ − 7 * @brief button control
+ − 8 *
+ − 9 ******************************************************************************
+ − 10 * @attention
+ − 11 *
+ − 12 * <h2><center>© COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>
+ − 13 *
+ − 14 ******************************************************************************
+ − 15 */
+ − 16
+ − 17 /* Define to prevent recursive inclusion -------------------------------------*/
+ − 18 #ifndef UART_H
+ − 19 #define UART_H
+ − 20
+ − 21 #ifdef __cplusplus
+ − 22 extern "C" {
+ − 23 #endif
+ − 24
+ − 25 #include "stm32f4xx_hal.h"
+ − 26
662
+ − 27
918
+ − 28 #define BUFFER_NODATA_LOW (0x15) /* The read function needs a signiture which indicates that no data for processing is available.*/
916
+ − 29 #define BUFFER_NODATA_HIGH (0xA5)
794
+ − 30
936
+ − 31 #define TX_BUF_SIZE (80u) /* max length for commands */
932
+ − 32 #define CHUNK_SIZE (80u) /* the DMA will handle chunk size transfers */
+ − 33 #define CHUNKS_PER_BUFFER (3u)
+ − 34
+ − 35 typedef struct
+ − 36 {
+ − 37 UART_HandleTypeDef* pHandle; /* Pointer to UART handle structure */
+ − 38
+ − 39 uint8_t* pRxBuffer; /* Pointer to receive buffer */
+ − 40 uint8_t* pTxBuffer; /* Pointer to transmit buffer */
+ − 41 uint8_t* pTxQue; /* Pointer to transmit que */
+ − 42 uint8_t rxWriteIndex ; /* Index of the data item which is analyzed */
+ − 43 uint8_t rxReadIndex; /* Index at which new data is stared */
+ − 44 uint8_t txBufferQueLen; /* Length of qued data waiting for transmission */
+ − 45
+ − 46 uint8_t dmaRxActive; /* Indicator if DMA reception needs to be started */
+ − 47 uint8_t dmaTxActive; /* Indicator if DMA reception needs to be started */
+ − 48
+ − 49 } sUartComCtrl;
+ − 50
+ − 51 extern sUartComCtrl Uart1Ctrl;
889
+ − 52
922
+ − 53 UART_HandleTypeDef huart1;
889
+ − 54
662
+ − 55 void MX_USART1_UART_Init(void);
+ − 56 void MX_USART1_UART_DeInit(void);
+ − 57 void MX_USART1_DMA_Init(void);
889
+ − 58
+ − 59 void MX_USART6_UART_Init(void);
+ − 60 void MX_USART6_DMA_Init(void);
890
+ − 61 void MX_USART6_UART_DeInit(void);
889
+ − 62 void GNSS_IO_init(void);
+ − 63
38
+ − 64 uint8_t UART_ButtonAdjust(uint8_t *array);
932
+ − 65 void UART_StartDMA_Receiption(sUartComCtrl* pUartCtrl);
690
+ − 66 #ifdef ENABLE_CO2_SUPPORT
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
diff
changeset
+ − 67 void UART_HandleCO2Data(void);
794
+ − 68 void DigitalCO2_SendCmd(uint8_t CO2Cmd, uint8_t *cmdString, uint8_t *cmdLength);
690
+ − 69 #endif
916
+ − 70
+ − 71 #ifdef ENABLE_GNSS_SUPPORT
+ − 72 void UART_HandleGnssData(void);
+ − 73 #endif
690
+ − 74 #ifdef ENABLE_SENTINEL_MODE
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
diff
changeset
+ − 75 void UART_HandleSentinelData(void);
690
+ − 76 #endif
932
+ − 77 void UART_SetGnssCtrl(sUartComCtrl* pTarget);
+ − 78 sUartComCtrl* UART_GetGnssCtrl();
+ − 79 void UART_clearRxBuffer(sUartComCtrl* pUartCtrl);
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
diff
changeset
+ − 80 uint8_t UART_isCO2Connected();
742
+ − 81 uint8_t UART_isSentinelConnected();
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
diff
changeset
+ − 82 void UART_setTargetChannel(uint8_t channel);
794
+ − 83 void UART_MUX_SelectAddress(uint8_t muxAddress);
+ − 84 void UART_SendCmdString(uint8_t *cmdString);
922
+ − 85 void UART_SendCmdUbx(const uint8_t *cmd, uint8_t len);
794
+ − 86 void UART_ReadData(uint8_t sensorType);
932
+ − 87 void UART_WriteData(sUartComCtrl* pUartCtrl);
794
+ − 88 void UART_FlushRxBuffer(void);
798
+ − 89 void UART_ChangeBaudrate(uint32_t newBaudrate);
861
+ − 90 uint8_t UART_isComActive(uint8_t sensorId);
932
+ − 91 uint8_t UART_isEndIndication(sUartComCtrl* pCtrl, uint8_t index);
729
d646a0f724a7
Added auto detection functionality for sensors connected to the external interface:
Ideenmodellierer
diff
changeset
+ − 92
794
+ − 93 void StringToInt(char *pstr, uint32_t *puInt32);
+ − 94 void StringToUInt64(char *pstr, uint64_t *puint64);
704
+ − 95
38
+ − 96 #ifdef __cplusplus
+ − 97 }
+ − 98 #endif
+ − 99
+ − 100 #endif /* UART_H */
+ − 101
+ − 102 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/