206 lines
5.5 KiB
C
206 lines
5.5 KiB
C
/**
|
|
******************************************************************************
|
|
* @file UART.h
|
|
* @author TMC Terminal Team
|
|
* @version V1.0.0
|
|
* @date 01/21/2016
|
|
* @brief This file provides all the WDT firmware functions.
|
|
******************************************************************************
|
|
*
|
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
|
* TIME. AS A RESULT, TMC SHALL NOT BE HELD LIABLE FOR ANY
|
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
|
*
|
|
* <h2><center>© COPYRIGHT 2016 TMC</center></h2>
|
|
******************************************************************************
|
|
*/
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "thm36x2.h"
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef _UART_H
|
|
#define _UART_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
/** @addtogroup THM36x2_HAL_Driver
|
|
* @{
|
|
*/
|
|
/** @addtogroup UART
|
|
* @brief UART driver modules
|
|
* @{
|
|
*/
|
|
/** @defgroup UART_Exported_Types UART Exported Types
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @brief USART Init Structure definition
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
|
|
uint32_t BaudRate; /*!< This member configures the USART communication baud rate.
|
|
This parameter can be one of the following values:
|
|
9600,14400,38400,56000,57600,115200,128000,256000,etc */
|
|
|
|
uint8_t StopBits; /*!< Specifies the number of stop bits transmitted
|
|
This parameter can be a value of @ref UART_stop_bits */
|
|
|
|
uint32_t DataWidth; /*!< This member configures the width of data.
|
|
This parameter can be a value of @ref UART_data_width */
|
|
|
|
uint8_t ParityMode; /*!< Specifies the parity mode.
|
|
This parameter can be a value of @ref UART_parity_mode */
|
|
} UART_InitTypeDef;
|
|
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_Exported_Constants UART Exported Constants
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup UART_stop_bits UART stop bits
|
|
* @{
|
|
*/
|
|
|
|
#define UART_STOP_BIT_1 0x00U
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_data_width UART data width
|
|
* @{
|
|
*/
|
|
|
|
#define UART_DATA_WIDTH_7 0x00000000UL
|
|
#define UART_DATA_WIDTH_8 0x00000001UL
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_parity_mode UART parity mode
|
|
* @{
|
|
*/
|
|
#define UART_PARITY_MODE_NONE 0x00000000UL
|
|
#define UART_PARITY_MODE_EVEN 0x00000002UL
|
|
#define UART_PARITY_MODE_ODD 0x00000006UL
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_flag_define RCC flag
|
|
* @{
|
|
*/
|
|
#define UART_FLAG_TXE 0x00000001UL
|
|
#define UART_FLAG_RXF 0x00000002UL
|
|
#define UART_FLAG_PE 0x00000004UL
|
|
#define UART_FLAG_OF 0x00000008UL
|
|
#define UART_FLAG_FE 0x00000010UL
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_IT_define RCC IT
|
|
* @{
|
|
*/
|
|
#define UART_IT_TXE 0x00000001UL
|
|
#define UART_IT_RXF 0x00000002UL
|
|
#define UART_IT_PE 0x00000004UL
|
|
#define UART_IT_OF 0x00000008UL
|
|
#define UART_IT_FE 0x00000010UL
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_DMA_control UART DMA control
|
|
* @{
|
|
*/
|
|
|
|
#define UART_DMA_RX 0x00000001UL
|
|
#define UART_DMA_TX 0x00000002UL
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @addtogroup UART_Exported_Functions
|
|
* @{
|
|
*/
|
|
|
|
void UART_DeInit(UART_TypeDef * UARTx);
|
|
void UART_Init(UART_TypeDef* UARTx, UART_InitTypeDef* UART_InitStruct);
|
|
void UART_StructInit(UART_InitTypeDef* UART_InitStruct);
|
|
FlagStatus UART_GetFlagStatus(UART_TypeDef* UARTx, uint16_t Uart_Flag);
|
|
void UART_ClearFlagStatus(UART_TypeDef* UARTx,uint16_t Uart_Flag);
|
|
void UART_ITConfig(UART_TypeDef* UARTx, uint16_t Uart_Flag, FunctionalState NewState);
|
|
FlagStatus UART_GetITStatus(UART_TypeDef* UARTx, uint16_t Uart_Flag);
|
|
void UART_ClearITStatus(UART_TypeDef* UARTx,uint16_t Uart_IT);
|
|
void UART_DMACmd(UART_TypeDef* UARTx, uint32_t DMA_Mode, FunctionalState NewState);
|
|
FlagStatus UART_GetDMAStatus(UART_TypeDef* UARTx, uint32_t DMA_Mode);
|
|
void UART_SendData(UART_TypeDef* UARTx, uint8_t Data);
|
|
uint8_t UART_ReceiveData(UART_TypeDef* UARTx);
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup UART_Private_Macros UART Private Macros
|
|
* @{
|
|
*/
|
|
|
|
#define IS_UART_Periph(PERIPH) (((PERIPH) == UART1_BASE_ADDR)|| \
|
|
((PERIPH) == UART2_BASE_ADDR)|| \
|
|
((PERIPH) == UART3_BASE_ADDR)|| \
|
|
((PERIPH) == UART4_BASE_ADDR))
|
|
|
|
#define IS_UART_STOPBIT(BIT) (((BIT) == UART_STOP_BIT_1) || \
|
|
((BIT) == UART_STOP_BIT_1))
|
|
|
|
#define IS_UART_DATAWIDTH(WIDTH) (((WIDTH) == UART_DATA_WIDTH_7) || \
|
|
((WIDTH) == UART_DATA_WIDTH_8))
|
|
|
|
//#define IS_UART_PARITYSTATE(STATE) (((STATE) == UART_PARITY_DISABLE) || \
|
|
// ((STATE) == UART_PARITY_ENABLE))
|
|
|
|
#define IS_UART_PARITYMODE(MODE) (((MODE) == UART_PARITY_MODE_EVEN) || \
|
|
((MODE) == UART_PARITY_MODE_NONE) || \
|
|
((MODE) == UART_PARITY_MODE_ODD))
|
|
|
|
#define IS_UART_STATUS(STATUS) ((STATUS & (~(UART_FLAG_TXE | UART_FLAG_RXF | UART_FLAG_PE | UART_FLAG_OF | UART_FLAG_FE))) == 0)
|
|
|
|
#define IS_UART_DAM_MODE(MODE) (((MODE) == UART_DMA_RX) || \
|
|
((MODE) == UART_DMA_TX))
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
/**
|
|
* @}
|
|
*/
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
/************************ (C) COPYRIGHT TMC *****END OF FILE****/
|