| | |
| | | * @author MCD Application Team |
| | | * @version V3.5.0 |
| | | * @date 11-March-2011 |
| | | * @brief This file contains all the functions prototypes for the USART |
| | | * @brief This file contains all the functions prototypes for the USART |
| | | * firmware library. |
| | | ****************************************************************************** |
| | | * @attention |
| | |
| | | #define __STM32F10x_USART_H |
| | | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | extern "C" { |
| | | #endif |
| | | |
| | | /* Includes ------------------------------------------------------------------*/ |
| | |
| | | |
| | | /** @addtogroup USART |
| | | * @{ |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Exported_Types |
| | | * @{ |
| | | */ |
| | | */ |
| | | |
| | | /** |
| | | * @brief USART Init Structure definition |
| | | */ |
| | | |
| | | /** |
| | | * @brief USART Init Structure definition |
| | | */ |
| | | |
| | | typedef struct |
| | | { |
| | | uint32_t USART_BaudRate; /*!< This member configures the USART communication baud rate. |
| | | uint32_t USART_BaudRate; /*!< This member configures the USART communication baud rate. |
| | | The baud rate is computed using the following formula: |
| | | - IntegerDivider = ((PCLKx) / (16 * (USART_InitStruct->USART_BaudRate))) |
| | | - FractionalDivider = ((IntegerDivider - ((u32) IntegerDivider)) * 16) + 0.5 */ |
| | | |
| | | uint16_t USART_WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. |
| | | uint16_t USART_WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. |
| | | This parameter can be a value of @ref USART_Word_Length */ |
| | | |
| | | uint16_t USART_StopBits; /*!< Specifies the number of stop bits transmitted. |
| | | uint16_t USART_StopBits; /*!< Specifies the number of stop bits transmitted. |
| | | This parameter can be a value of @ref USART_Stop_Bits */ |
| | | |
| | | uint16_t USART_Parity; /*!< Specifies the parity mode. |
| | | uint16_t USART_Parity; /*!< Specifies the parity mode. |
| | | This parameter can be a value of @ref USART_Parity |
| | | @note When parity is enabled, the computed parity is inserted |
| | | at the MSB position of the transmitted data (9th bit when |
| | | the word length is set to 9 data bits; 8th bit when the |
| | | word length is set to 8 data bits). */ |
| | | |
| | | uint16_t USART_Mode; /*!< Specifies wether the Receive or Transmit mode is enabled or disabled. |
| | | |
| | | uint16_t USART_Mode; /*!< Specifies wether the Receive or Transmit mode is enabled or disabled. |
| | | This parameter can be a value of @ref USART_Mode */ |
| | | |
| | | uint16_t USART_HardwareFlowControl; /*!< Specifies wether the hardware flow control mode is enabled |
| | | uint16_t USART_HardwareFlowControl; /*!< Specifies wether the hardware flow control mode is enabled |
| | | or disabled. |
| | | This parameter can be a value of @ref USART_Hardware_Flow_Control */ |
| | | } USART_InitTypeDef; |
| | | |
| | | /** |
| | | * @brief USART Clock Init Structure definition |
| | | */ |
| | | |
| | | /** |
| | | * @brief USART Clock Init Structure definition |
| | | */ |
| | | |
| | | typedef struct |
| | | { |
| | | |
| | | uint16_t USART_Clock; /*!< Specifies whether the USART clock is enabled or disabled. |
| | | uint16_t USART_Clock; /*!< Specifies whether the USART clock is enabled or disabled. |
| | | This parameter can be a value of @ref USART_Clock */ |
| | | |
| | | uint16_t USART_CPOL; /*!< Specifies the steady state value of the serial clock. |
| | | uint16_t USART_CPOL; /*!< Specifies the steady state value of the serial clock. |
| | | This parameter can be a value of @ref USART_Clock_Polarity */ |
| | | |
| | | uint16_t USART_CPHA; /*!< Specifies the clock transition on which the bit capture is made. |
| | | uint16_t USART_CPHA; /*!< Specifies the clock transition on which the bit capture is made. |
| | | This parameter can be a value of @ref USART_Clock_Phase */ |
| | | |
| | | uint16_t USART_LastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted |
| | | uint16_t USART_LastBit; /*!< Specifies whether the clock pulse corresponding to the last transmitted |
| | | data bit (MSB) has to be output on the SCLK pin in synchronous mode. |
| | | This parameter can be a value of @ref USART_Last_Bit */ |
| | | } USART_ClockInitTypeDef; |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Exported_Constants |
| | | * @{ |
| | | */ |
| | | |
| | | */ |
| | | |
| | | #define IS_USART_ALL_PERIPH(PERIPH) (((PERIPH) == USART1) || \ |
| | | ((PERIPH) == USART2) || \ |
| | | ((PERIPH) == USART3) || \ |
| | |
| | | ((PERIPH) == USART2) || \ |
| | | ((PERIPH) == USART3) || \ |
| | | ((PERIPH) == UART4)) |
| | | /** @defgroup USART_Word_Length |
| | | /** @defgroup USART_Word_Length |
| | | * @{ |
| | | */ |
| | | |
| | | */ |
| | | |
| | | #define USART_WordLength_8b ((uint16_t)0x0000) |
| | | #define USART_WordLength_9b ((uint16_t)0x1000) |
| | | |
| | | |
| | | #define IS_USART_WORD_LENGTH(LENGTH) (((LENGTH) == USART_WordLength_8b) || \ |
| | | ((LENGTH) == USART_WordLength_9b)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Stop_Bits |
| | | /** @defgroup USART_Stop_Bits |
| | | * @{ |
| | | */ |
| | | |
| | | */ |
| | | |
| | | #define USART_StopBits_1 ((uint16_t)0x0000) |
| | | #define USART_StopBits_0_5 ((uint16_t)0x1000) |
| | | #define USART_StopBits_2 ((uint16_t)0x2000) |
| | |
| | | ((STOPBITS) == USART_StopBits_1_5)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Parity |
| | | /** @defgroup USART_Parity |
| | | * @{ |
| | | */ |
| | | |
| | | */ |
| | | |
| | | #define USART_Parity_No ((uint16_t)0x0000) |
| | | #define USART_Parity_Even ((uint16_t)0x0400) |
| | | #define USART_Parity_Odd ((uint16_t)0x0600) |
| | | #define USART_Parity_Odd ((uint16_t)0x0600) |
| | | #define IS_USART_PARITY(PARITY) (((PARITY) == USART_Parity_No) || \ |
| | | ((PARITY) == USART_Parity_Even) || \ |
| | | ((PARITY) == USART_Parity_Odd)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Mode |
| | | /** @defgroup USART_Mode |
| | | * @{ |
| | | */ |
| | | |
| | | */ |
| | | |
| | | #define USART_Mode_Rx ((uint16_t)0x0004) |
| | | #define USART_Mode_Tx ((uint16_t)0x0008) |
| | | #define IS_USART_MODE(MODE) ((((MODE) & (uint16_t)0xFFF3) == 0x00) && ((MODE) != (uint16_t)0x00)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Hardware_Flow_Control |
| | | /** @defgroup USART_Hardware_Flow_Control |
| | | * @{ |
| | | */ |
| | | */ |
| | | #define USART_HardwareFlowControl_None ((uint16_t)0x0000) |
| | | #define USART_HardwareFlowControl_RTS ((uint16_t)0x0100) |
| | | #define USART_HardwareFlowControl_CTS ((uint16_t)0x0200) |
| | |
| | | ((CONTROL) == USART_HardwareFlowControl_RTS_CTS)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Clock |
| | | /** @defgroup USART_Clock |
| | | * @{ |
| | | */ |
| | | */ |
| | | #define USART_Clock_Disable ((uint16_t)0x0000) |
| | | #define USART_Clock_Enable ((uint16_t)0x0800) |
| | | #define IS_USART_CLOCK(CLOCK) (((CLOCK) == USART_Clock_Disable) || \ |
| | | ((CLOCK) == USART_Clock_Enable)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Clock_Polarity |
| | | /** @defgroup USART_Clock_Polarity |
| | | * @{ |
| | | */ |
| | | |
| | | |
| | | #define USART_CPOL_Low ((uint16_t)0x0000) |
| | | #define USART_CPOL_High ((uint16_t)0x0400) |
| | | #define IS_USART_CPOL(CPOL) (((CPOL) == USART_CPOL_Low) || ((CPOL) == USART_CPOL_High)) |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Clock_Phase |
| | | * @{ |
| | |
| | | ((LASTBIT) == USART_LastBit_Enable)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Interrupt_definition |
| | | /** @defgroup USART_Interrupt_definition |
| | | * @{ |
| | | */ |
| | | |
| | | |
| | | #define USART_IT_PE ((uint16_t)0x0028) |
| | | #define USART_IT_TXE ((uint16_t)0x0727) |
| | | #define USART_IT_TC ((uint16_t)0x0626) |
| | |
| | | * @} |
| | | */ |
| | | |
| | | /** @defgroup USART_DMA_Requests |
| | | /** @defgroup USART_DMA_Requests |
| | | * @{ |
| | | */ |
| | | |
| | |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_WakeUp_methods |
| | | * @{ |
| | |
| | | * @} |
| | | */ |
| | | |
| | | /** @defgroup USART_LIN_Break_Detection_Length |
| | | /** @defgroup USART_LIN_Break_Detection_Length |
| | | * @{ |
| | | */ |
| | | |
| | | |
| | | #define USART_LINBreakDetectLength_10b ((uint16_t)0x0000) |
| | | #define USART_LINBreakDetectLength_11b ((uint16_t)0x0020) |
| | | #define IS_USART_LIN_BREAK_DETECT_LENGTH(LENGTH) \ |
| | |
| | | * @} |
| | | */ |
| | | |
| | | /** @defgroup USART_IrDA_Low_Power |
| | | /** @defgroup USART_IrDA_Low_Power |
| | | * @{ |
| | | */ |
| | | |
| | |
| | | ((MODE) == USART_IrDAMode_Normal)) |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Flags |
| | | /** @defgroup USART_Flags |
| | | * @{ |
| | | */ |
| | | |
| | |
| | | ((FLAG) == USART_FLAG_IDLE) || ((FLAG) == USART_FLAG_LBD) || \ |
| | | ((FLAG) == USART_FLAG_CTS) || ((FLAG) == USART_FLAG_ORE) || \ |
| | | ((FLAG) == USART_FLAG_NE) || ((FLAG) == USART_FLAG_FE)) |
| | | |
| | | |
| | | #define IS_USART_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0xFC9F) == 0x00) && ((FLAG) != (uint16_t)0x00)) |
| | | #define IS_USART_PERIPH_FLAG(PERIPH, USART_FLAG) ((((*(uint32_t*)&(PERIPH)) != UART4_BASE) &&\ |
| | | ((*(uint32_t*)&(PERIPH)) != UART5_BASE)) \ |
| | | || ((USART_FLAG) != USART_FLAG_CTS)) |
| | | || ((USART_FLAG) != USART_FLAG_CTS)) |
| | | #define IS_USART_BAUDRATE(BAUDRATE) (((BAUDRATE) > 0) && ((BAUDRATE) < 0x0044AA21)) |
| | | #define IS_USART_ADDRESS(ADDRESS) ((ADDRESS) <= 0xF) |
| | | #define IS_USART_DATA(DATA) ((DATA) <= 0x1FF) |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Exported_Macros |
| | | * @{ |
| | | */ |
| | | */ |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** @defgroup USART_Exported_Functions |
| | | * @{ |
| | | */ |
| | | |
| | | void USART_DeInit(USART_TypeDef* USARTx); |
| | | void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct); |
| | | void USART_StructInit(USART_InitTypeDef* USART_InitStruct); |
| | | void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USART_ClockInitStruct); |
| | | void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct); |
| | | void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState); |
| | | void USART_DMACmd(USART_TypeDef* USARTx, uint16_t USART_DMAReq, FunctionalState NewState); |
| | | void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address); |
| | | void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp); |
| | | void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint16_t USART_LINBreakDetectLength); |
| | | void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_SendData(USART_TypeDef* USARTx, uint16_t Data); |
| | | uint16_t USART_ReceiveData(USART_TypeDef* USARTx); |
| | | void USART_SendBreak(USART_TypeDef* USARTx); |
| | | void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime); |
| | | void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler); |
| | | void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | void USART_IrDAConfig(USART_TypeDef* USARTx, uint16_t USART_IrDAMode); |
| | | void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState); |
| | | FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG); |
| | | void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG); |
| | | ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT); |
| | | void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT); |
| | | void USART_DeInit(USART_TypeDef *USARTx); |
| | | void USART_Init(USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct); |
| | | void USART_StructInit(USART_InitTypeDef *USART_InitStruct); |
| | | void USART_ClockInit(USART_TypeDef *USARTx, USART_ClockInitTypeDef *USART_ClockInitStruct); |
| | | void USART_ClockStructInit(USART_ClockInitTypeDef *USART_ClockInitStruct); |
| | | void USART_Cmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_ITConfig(USART_TypeDef *USARTx, uint16_t USART_IT, FunctionalState NewState); |
| | | void USART_DMACmd(USART_TypeDef *USARTx, uint16_t USART_DMAReq, FunctionalState NewState); |
| | | void USART_SetAddress(USART_TypeDef *USARTx, uint8_t USART_Address); |
| | | void USART_WakeUpConfig(USART_TypeDef *USARTx, uint16_t USART_WakeUp); |
| | | void USART_ReceiverWakeUpCmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_LINBreakDetectLengthConfig(USART_TypeDef *USARTx, uint16_t USART_LINBreakDetectLength); |
| | | void USART_LINCmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_SendData(USART_TypeDef *USARTx, uint16_t Data); |
| | | uint16_t USART_ReceiveData(USART_TypeDef *USARTx); |
| | | void USART_SendBreak(USART_TypeDef *USARTx); |
| | | void USART_SetGuardTime(USART_TypeDef *USARTx, uint8_t USART_GuardTime); |
| | | void USART_SetPrescaler(USART_TypeDef *USARTx, uint8_t USART_Prescaler); |
| | | void USART_SmartCardCmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_SmartCardNACKCmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_HalfDuplexCmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_OverSampling8Cmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_OneBitMethodCmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | void USART_IrDAConfig(USART_TypeDef *USARTx, uint16_t USART_IrDAMode); |
| | | void USART_IrDACmd(USART_TypeDef *USARTx, FunctionalState NewState); |
| | | FlagStatus USART_GetFlagStatus(USART_TypeDef *USARTx, uint16_t USART_FLAG); |
| | | void USART_ClearFlag(USART_TypeDef *USARTx, uint16_t USART_FLAG); |
| | | ITStatus USART_GetITStatus(USART_TypeDef *USARTx, uint16_t USART_IT); |
| | | void USART_ClearITPendingBit(USART_TypeDef *USARTx, uint16_t USART_IT); |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | |
| | | #endif /* __STM32F10x_USART_H */ |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | */ |
| | | |
| | | /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |