CIU32_L051_M307R/Peripheral/CIU32L051_Lib/Include/ciu32l051_std_usart.h

1387 lines
46 KiB
C
Raw Normal View History

/************************************************************************************************/
/**
* @file ciu32L051_std_usart.h
* @author MCU Ecosystem Development Team
* @brief USART STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD>
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/*<2A><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>*/
#ifndef CIU32L051_STD_USART_H
#define CIU32L051_STD_USART_H
/************************************************************************************************/
/**
* @addtogroup CIU32L051_STD_Driver
* @{
*/
/**
* @defgroup USART USART
* @brief ͨ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>/<EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*/
/************************************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/*------------------------------------------includes--------------------------------------------*/
#include "ciu32L051_std_common.h"
/*-----------------------------------------type define------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup USART_Types USART Types
* @brief USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/**
* @brief USART<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>
*/
typedef struct
{
uint32_t direction; /**< USART <20><><EFBFBD><EFBFBD>ģʽ(<28><><EFBFBD><EFBFBD><E4B7BD>)
@arg USART_DIRECTION_SEND ... */
uint32_t over_sample; /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
@arg USART_OVERSAMPLE_16 ... */
uint32_t baudrate; /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32_t wordlength; /**< USART <20><><EFBFBD><EFBFBD>֡<EFBFBD>ֳ<EFBFBD>
@arg USART_WORDLENGTH_8BITS ... */
uint32_t stopbits; /**< USART <20><><EFBFBD><EFBFBD>ֹ֡ͣλ<D6B9><CEBB><EFBFBD><EFBFBD>
@arg USART_STOPBITS_1 ... */
uint32_t parity; /**< USART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>żУ<C5BC><D0A3>
@arg USART_PARITY_NONE ... */
uint32_t hardware_flow; /**< USART Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@arg USART_FLOWCONTROL_NONE ... */
}std_usart_init_t;
/**
* @brief USARTͬ<EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>
*/
typedef struct
{
uint32_t sync_clk; /**< ָ<><D6B8>ͬ<EFBFBD><CDAC>ʱ<EFBFBD><CAB1>ģʽ
@arg USART_CLOCK_ENABLE ... */
uint32_t sync_clock_polarity; /**< ָ<><D6B8>ͬ<EFBFBD><CDAC>ʱ<EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>
@arg USART_SYNC_POLARITY_LOW ... */
uint32_t sync_clock_phase; /**< ָ<><D6B8>ͬ<EFBFBD><CDAC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λ
@arg USART_SYNC_PHASE_1EDGE ... */
}std_usart_sync_clk_init_t;
/**
* @}
*/
/*--------------------------------------------define--------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup USART_Constants USART Constants
* @brief USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/* USART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD> */
#define USART_WORDLENGTH_8BITS USART_CR1_WL8BITS /**< 8-bits <20>ֳ<EFBFBD> */
#define USART_WORDLENGTH_9BITS USART_CR1_WL9BITS /**< 9-bits <20>ֳ<EFBFBD> */
/* USART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>żУ<C5BC><D0A3> */
#define USART_PARITY_NONE (0x00000000U) /**< <20><>У<EFBFBD><D0A3> */
#define USART_PARITY_EVEN USART_CR1_PEN /**< żУ<C5BC><D0A3> */
#define USART_PARITY_ODD (USART_CR1_PEN | USART_CR1_PTS) /**< <20><>У<EFBFBD><D0A3> */
/* USART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_OVERSAMPLE_16 (0x00000000U) /**< 16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_OVERSAMPLE_8 USART_CR1_OVS8 /**< 8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* USART<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭģʽ<C4A3>˳<EFBFBD><CBB3><EFBFBD>ʽ */
#define USART_MUTE_EXIT_IDLELINE (0x00000000U) /**< <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD> */
#define USART_MUTE_EXIT_ADDRESSMARK USART_CR1_RXWKUP /**< <20><>ַƥ<D6B7><EFBFBD><E4BBBD> */
/* USART <20><><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>÷<EFBFBD>Χ */
#define USART_BRR_MIN (0x00000010U) /**< USART<52><54><EFBFBD><EFBFBD><EFBFBD>ʼĴ<CABC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ */
#define USART_BRR_MAX (0x0000FFFFU) /**< USART<52><54><EFBFBD><EFBFBD><EFBFBD>ʼĴ<CABC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
/* USART<52><54><EFBFBD><EFBFBD>ģʽ */
#define USART_DIRECTION_NONE (0x00000000U) /**< δʹ<CEB4>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_DIRECTION_SEND USART_CR1_TE /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ(<28><>ʹ<EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD><EFBFBD>) */
#define USART_DIRECTION_RECEIVE USART_CR1_RE /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ(<28><>ʹ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>) */
#define USART_DIRECTION_SEND_RECEIVE (USART_CR1_TE |USART_CR1_RE) /**< <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>(ʹ<>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD>) */
/* USART ʱ<>ӿ<EFBFBD><D3BF>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ */
#define USART_CLOCK_DISABLE (0x00000000U) /**< <20><>ֹUSARTʱ<54><CAB1> */
#define USART_CLOCK_ENABLE USART_CR2_CLKEN /**< ʹ<><CAB9>USARTʱ<54><CAB1> */
/* USART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>С<EFBFBD><D0A1> */
#define USART_DATA_ORDER_LSBFIRST (0x00000000U) /**< <20><><EFBFBD><EFBFBD>Чλ<D0A7><CEBB><EFBFBD><EFBFBD> */
#define USART_DATA_ORDER_MSBFIRST USART_CR2_MSBFIRST /**< <20><><EFBFBD><EFBFBD>Чλ<D0A7><CEBB><EFBFBD><EFBFBD> */
/* USART ͬ<><CDAC>ʱ<EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD> */
#define USART_SYNC_POLARITY_LOW (0x00000000U) /**< <20><><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ͬ<EFBFBD><CDAC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4>ڵ͵<DAB5>ƽ */
#define USART_SYNC_POLARITY_HIGH USART_CR2_CPOL /**< <20><><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ͬ<EFBFBD><CDAC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4>ڸߵ<DAB8>ƽ */
/* USART ͬ<><CDAC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λ */
#define USART_SYNC_PHASE_1EDGE (0x00000000U) /**< ͬ<><CDAC>ʱ<EFBFBD>ӵĵ<D3B5>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ĵ<EFBFBD>1<EFBFBD><31>bit */
#define USART_SYNC_PHASE_2EDGE USART_CR2_CPHA /**< ͬ<><CDAC>ʱ<EFBFBD>ӵĵ<D3B5>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ĵ<EFBFBD>1<EFBFBD><31>bit */
/* USART<52><54><EFBFBD>ѵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD> */
#define USART_DETECT_4BITS (0x00000000U) /**< 4-bits<74><73><EFBFBD>Ȼ<EFBFBD><C8BB>ѵ<EFBFBD>ַ */
#define USART_DETECT_7BITS USART_CR2_ADDRM /**< 7-bits<74><73><EFBFBD>Ȼ<EFBFBD><C8BB>ѵ<EFBFBD>ַ */
/* USART <20><><EFBFBD><EFBFBD>ֹ֡ͣλ */
#define USART_STOPBITS_0_5 USART_CR2_STOPBIT_0_5 /**< 0.5bitֹͣλ */
#define USART_STOPBITS_1 USART_CR2_STOPBIT_1 /**< 1bitֹͣλ */
#define USART_STOPBITS_1_5 USART_CR2_STOPBIT_1_5 /**< 1.5bitsֹͣλ */
#define USART_STOPBITS_2 USART_CR2_STOPBIT_2 /**< 2bitsֹͣλ */
/* USART RS485 Driverͨ<72><CDA8>ģʽ */
#define USART_DE_POLARITY_HIGH (0x00000000U) /**< Driver<65>źż<C5BA><C5BC>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>Ч */
#define USART_DE_POLARITY_LOW USART_CR3_DEP /**< Driver<65>źż<C5BA><C5BC>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>Ч */
/* USART<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_OVERRUN_ENABLE (0x00000000U) /**< <20><>ֹUSART<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_OVERRUN_DISABLE USART_CR3_ORED /**< ʹ<><CAB9>USART<52><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* USART IRDA <20><><EFBFBD><EFBFBD>ģʽ */
#define USART_IRDA_NORMAL_MODE (0x00000000U) /**< ʹ<><CAB9>IRDA <20><><EFBFBD><EFBFBD>ģʽ */
#define USART_IRDA_LOWPOWER_MODE USART_CR3_IRLP /**< ʹ<><CAB9>IRDA <20>͹<EFBFBD><CDB9><EFBFBD>ģʽ */
/* USART LIN ģʽ <20>ж<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><E2B3A4> */
#define USART_LIN_BREAK_DETECT_10_BITS (0x00000000U) /**< LINģʽ<C4A3>ж<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><E2B3A4> 10bits */
#define USART_LIN_BREAK_DETECT_11_BITS USART_CR2_LBDL /**< LINģʽ<C4A3>ж<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><E2B3A4> 11bits */
/* USART Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_FLOWCONTROL_NONE (0x00000000U) /**< <20><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD> */
#define USART_FLOWCONTROL_RTS USART_CR3_RTSE /**< RTS<54><53><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_FLOWCONTROL_CTS USART_CR3_CTSE /**< CTS<54><53><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_FLOWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) /**< RTS<54><53>CTS<54><53><EFBFBD><EFBFBD>ͬʱʹ<CAB1><CAB9> */
/* USART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_SAMPLE_THREE_BIT (0x00000000U) /**< Three-bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_SAMPLE_ONE_BIT USART_CR3_OBS /**< One-bit<69><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/*USART<52>ж<EFBFBD>ʹ<EFBFBD><CAB9>λ */
#define USART_CR1_INTERRUPT_IDLE USART_CR1_IDLEIE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_RXNE USART_CR1_RXNEIE /**< USART <20><><EFBFBD>ռĴ<D5BC><C4B4><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_TC USART_CR1_TCIE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_TXE USART_CR1_TXEIE /**< USART <20><><EFBFBD>ͼĴ<CDBC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_PE USART_CR1_PEIE /**< USART <20><>żУ<C5BC><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_CM USART_CR1_CMIE /**< USART <20>ַ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_RTO USART_CR1_RTOIE /**< USART <20><><EFBFBD>ճ<EFBFBD>ʱ<EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR1_INTERRUPT_EB USART_CR1_EBIE /**< USART <20><>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR2_INTERRUPT_LBD USART_CR2_LBDIE /**< USART <20>ж<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR3_INTERRUPT_ERR USART_CR3_EIE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܣ<EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define USART_CR3_INTERRUPT_CTS USART_CR3_CTSIE /**< USART CTS<54>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
#define USART_CR3_INTERRUPT_TCBGT USART_CR3_TCBGTIE /**< USART <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
/* USART<52>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD>λ(USART_ICR<43>Ĵ<EFBFBD><C4B4><EFBFBD>) */
#define USART_CLEAR_PE USART_ICR_PECF /**< <20><>żУ<C5BC><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_FE USART_ICR_FECF /**< ֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_NOISE USART_ICR_NOISECF /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_ORE USART_ICR_ORECF /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_IDLE USART_ICR_IDLECF /**< <20><>·<EFBFBD><C2B7><EFBFBD>б<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_TC USART_ICR_TCCF /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_TCBGT USART_ICR_TCBGTCF /**< <20>ڱ<EFBFBD><DAB1><EFBFBD>ʱ<EFBFBD><CAB1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_LBD USART_ICR_LBDCF /**< LBD<42><44>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_CTS USART_ICR_CTSCF /**< CTS<54><53>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_RTO USART_ICR_RTOCF /**< <20><><EFBFBD>ճ<EFBFBD>ʱ<EFBFBD><CAB1>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_EB USART_ICR_EBCF /**< <20><>β<EFBFBD><CEB2>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
#define USART_CLEAR_CM USART_ICR_CMCF /**< <20>ַ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* USART ״̬<D7B4><CCAC>־ */
#define USART_FLAG_REACK USART_ISR_REACK /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ȷ<EFBFBD>ϱ<EFBFBD>־ */
#define USART_FLAG_TEACK USART_ISR_TEACK /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ȷ<EFBFBD>ϱ<EFBFBD>־ */
#define USART_FLAG_IDLE USART_ISR_IDLE /**< USART <20><><EFBFBD>б<EFBFBD>־ */
#define USART_FLAG_RECEIVE_BUSY USART_ISR_BUSY /**< USART <20><><EFBFBD><EFBFBD>æ(<28><><EFBFBD>չܽ<D5B9><DCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>) */
#define USART_FLAG_TXE USART_ISR_TXE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD>ձ<EFBFBD>־ */
#define USART_FLAG_TC USART_ISR_TC /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־ */
#define USART_FLAG_TCBGT USART_ISR_TCBGT /**< USART <20>ڱ<EFBFBD><DAB1><EFBFBD>ʱ<EFBFBD><CAB1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־ */
#define USART_FLAG_RXNE USART_ISR_RXNE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD>ǿձ<C7BF>־ */
#define USART_FLAG_LBD USART_ISR_LBD /**< USART <20>ж<EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ձ<EFBFBD>־ */
#define USART_FLAG_CM USART_ISR_CMF /**< USART <20>ַ<EFBFBD>/<2F><>ַƥ<D6B7><C6A5><EFBFBD><EFBFBD>־ */
#define USART_FLAG_BKSEND USART_ISR_BKSEND /**< USART <20>ж<EFBFBD><D0B6>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ͱ<EFBFBD>־ */
#define USART_FLAG_CTS USART_ISR_CTS /**< USART CTS<54><53>־ */
#define USART_FLAG_CTSIF USART_ISR_CTSIF /**< USART CTS<54><53>־<EFBFBD>жϱ<D0B6>־ */
#define USART_FLAG_RTO USART_ISR_RTOF /**< USART <20><><EFBFBD>ճ<EFBFBD>ʱ<EFBFBD><CAB1>־ */
#define USART_FLAG_EB USART_ISR_EBF /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־ */
#define USART_FLAG_RWU USART_ISR_RWU /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭģʽ<C4A3><CABD>־ */
#define USART_FLAG_ORE USART_ISR_ORE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
#define USART_FLAG_NOISE USART_ISR_NOISE /**< USART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
#define USART_FLAG_FE USART_ISR_FE /**< USART ֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
#define USART_FLAG_PE USART_ISR_PE /**< USART <20><>żУ<C5BC><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
/**
* @}
*/
/*-------------------------------------------functions------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup USART_External_Functions USART External Functions
* @brief USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/**
* @brief ʹ<EFBFBD><EFBFBD>USART
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_enable(USART_t *usartx)
{
usartx->CR1 |= (USART_CR1_UE);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_disable(USART_t *usartx)
{
usartx->CR1 &= (~USART_CR1_UE);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param word_length USART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_WORDLENGTH_8BITS
* @arg USART_WORDLENGTH_9BITS
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_word_length(USART_t *usartx, uint32_t word_length)
{
MODIFY_REG(usartx->CR1, USART_CR1_WL, word_length);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_WORDLENGTH_8BITS
* @arg USART_WORDLENGTH_9BITS
*/
__STATIC_INLINE uint32_t std_usart_get_word_length(USART_t *usartx)
{
return (usartx->CR1 & USART_CR1_WL);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param parity USART<EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_PARITY_NONE
* @arg USART_PARITY_EVEN
* @arg USART_PARITY_ODD
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_parity(USART_t *usartx,uint32_t parity)
{
MODIFY_REG(usartx->CR1,(USART_CR1_PTS | USART_CR1_PEN), parity);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USART<EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_PARITY_NONE
* @arg USART_PARITY_EVEN
* @arg USART_PARITY_ODD
*/
__STATIC_INLINE uint32_t std_usart_get_parity(USART_t *usartx )
{
return(usartx->CR1 & (USART_CR1_PTS | USART_CR1_PEN));
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USARTֹͣλ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param stopbits USARTֹͣλλ<EFBFBD><EFBFBD>
* @arg USART_STOPBITS_0_5
* @arg USART_STOPBITS_1
* @arg USART_STOPBITS_1_5
* @arg USART_STOPBITS_2
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_stopbits(USART_t *usartx, uint32_t stopbits)
{
MODIFY_REG(usartx->CR2, USART_CR2_STOPBIT, stopbits);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSARTֹͣλ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USARTֹͣλλ<EFBFBD><EFBFBD>
* @arg USART_STOPBITS_0_5
* @arg USART_STOPBITS_1
* @arg USART_STOPBITS_1_5
* @arg USART_STOPBITS_2
*/
__STATIC_INLINE uint32_t std_usart_get_stopbits(USART_t *usartx)
{
return(usartx->CR2 & USART_CR2_STOPBIT);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param data_order USART <EFBFBD>ַ<EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>
* @arg USART_DATA_ORDER_LSBFIRST
* @arg USART_DATA_ORDER_MSBFIRST
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_data_order(USART_t *usartx, uint32_t data_order)
{
MODIFY_REG(usartx->CR2, USART_CR2_MSBFIRST, data_order);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USART <EFBFBD>ַ<EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>
* @arg USART_DATA_ORDER_LSBFIRST
* @arg USART_DATA_ORDER_MSBFIRST
*/
__STATIC_INLINE uint32_t std_usart_get_data_order(USART_t *usartx)
{
return(usartx->CR2 & USART_CR2_MSBFIRST);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param over_sample USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @arg USART_OVERSAMPLE_8
* @arg USART_OVERSAMPLE_16
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_over_sample(USART_t *usartx,uint32_t over_sample)
{
MODIFY_REG(usartx->CR1,USART_CR1_OVS8, over_sample);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @arg USART_OVERSAMPLE_8
* @arg USART_OVERSAMPLE_16
*/
__STATIC_INLINE uint32_t std_usart_get_over_sample(USART_t *usartx)
{
return (usartx->CR1 & USART_CR1_OVS8);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param sample_method USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_SAMPLE_THREE_BIT
* @arg USART_SAMPLE_ONE_BIT
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_sample_method(USART_t *usartx,uint32_t sample_method)
{
MODIFY_REG(usartx->CR3,USART_CR3_OBS, sample_method);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param direction USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_DIRECTION_NONE
* @arg USART_DIRECTION_SEND
* @arg USART_DIRECTION_RECEIVE
* @arg USART_DIRECTION_SEND_RECEIVE
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_transfer_direction(USART_t *usartx, uint32_t direction)
{
MODIFY_REG(usartx->CR1, USART_CR1_TE|USART_CR1_RE, direction);
}
/**
* @brief <EFBFBD><EFBFBD>ȡ USART <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_DIRECTION_NONE
* @arg USART_DIRECTION_SEND
* @arg USART_DIRECTION_RECEIVE
* @arg USART_DIRECTION_SEND_RECEIVE
*/
__STATIC_INLINE uint32_t std_usart_get_transfer_direction(USART_t *usartx)
{
return(usartx->CR1 & (USART_CR1_TE|USART_CR1_RE));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_pin_swap_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_SWAP);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_pin_swap_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_SWAP);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART RX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_rx_level_invert_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_RXIVC);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART RX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_rx_level_invert_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_RXIVC);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART TX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_tx_level_invert_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_TXIVC);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART TX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_tx_level_invert_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_TXIVC);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_data_invert_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_DATAIVC);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_data_invert_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_DATAIVC);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USARTʱ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_clk_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_CLKEN);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSARTʱ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_clk_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_CLKEN);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USARTͬ<EFBFBD><EFBFBD>ʱ<EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param sync_clk_polarity USARTͬ<EFBFBD><EFBFBD>ʱ<EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD>
* @arg USART_SYNC_POLARITY_LOW
* @arg USART_SYNC_POLARITY_HIGH
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_sync_clk_polarity(USART_t *usartx, uint32_t sync_clk_polarity)
{
MODIFY_REG(usartx->CR2, USART_CR2_CPOL, sync_clk_polarity);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USARTͬ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param sync_clk_phase USARTͬ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
* @arg USART_SYNC_PHASE_1EDGE
* @arg USART_SYNC_PHASE_2EDGE
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_sync_clk_phase(USART_t *usartx, uint32_t sync_clk_phase)
{
MODIFY_REG(usartx->CR2, USART_CR2_CPHA, sync_clk_phase);
}
/**
* @brief USART<EFBFBD>Ӿ<EFBFBD>Ĭ<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>ʽѡ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param mute_mode USART <EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>ʽ
* @arg USART_MUTE_EXIT_IDLELINE
* @arg USART_MUTE_EXIT_ADDRESSMARK
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_mute_exit_mode(USART_t *usartx,uint32_t mute_mode)
{
MODIFY_REG(usartx->CR1, USART_CR1_RXWKUP, mute_mode);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_multi_mode_enable(USART_t *usartx)
{
usartx->CR1 |= (USART_CR1_RXMME);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_multi_mode_disable(USART_t *usartx)
{
usartx->CR1 &= (~USART_CR1_RXMME);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD>ַƥ<EFBFBD><EFBFBD>ģʽѡ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param addr_mode USART <EFBFBD><EFBFBD>ַƥ<EFBFBD><EFBFBD>ģʽ
* @arg USART_DETECT_4BITS
* @arg USART_DETECT_7BITS
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_addr_match(USART_t *usartx,uint32_t addr_mode)
{
MODIFY_REG(usartx->CR2, USART_CR2_ADDRM, addr_mode);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD>ַƥ<EFBFBD><EFBFBD>ģʽ <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ַ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param local_address USART <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ַ 8bits
* @note <EFBFBD><EFBFBD>ַƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD>ģʽ<EFBFBD>йأ<EFBFBD>ƥ<EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>USART_DETECT_4BITS<EFBFBD><EFBFBD>USART_DETECT_7BITS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_local_address(USART_t *usartx, uint32_t local_address)
{
MODIFY_REG(usartx->CR2, USART_CR2_ADDR,(local_address << USART_CR2_ADDR_POS));
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART ƥ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param data_match ƥ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD> 8bits 0~0xFF
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_data_match(USART_t *usartx, uint32_t data_match)
{
MODIFY_REG(usartx->CR2, USART_CR2_ADDR,(data_match << USART_CR2_ADDR_POS));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_SCEN);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_SCEN);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽNACK
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_nack_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_SCNAK);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽNACK
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_nack_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_SCNAK);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param retry_cnt <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x00 ~ 0x07
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_set_retry(USART_t *usartx, uint32_t retry_cnt)
{
MODIFY_REG(usartx->CR3, USART_CR3_SCRETRY_MASK, retry_cnt<<USART_CR3_SCRETRY_POS);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USARTʱ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><EFBFBD><EFBFBD>IrDAģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param presc_value <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD>Ϊʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ<EFBFBD><EFBFBD> IrDAģʽ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӵ<EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ
* @note <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD> presc_value ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x01~ 0x01F, <EFBFBD><EFBFBD>ӦԤ<EFBFBD><EFBFBD>Ƶֵ 2 ~ 62
* @note IrDAģʽ<EFBFBD><EFBFBD> presc_value ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x01~ 0x0FF, <EFBFBD><EFBFBD>ӦԤ<EFBFBD><EFBFBD>Ƶֵ 1 ~ 255
* @note presc_value <EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD>ֵΪ0
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_prescaler(USART_t *usartx, uint32_t presc_value)
{
MODIFY_REG(usartx->GTPR, USART_GTPR_PSV, presc_value);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD> ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD>ֵΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ*2<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶֵ<EFBFBD><EFBFBD>Χ 2 ~ 62
* @note IrDAģʽ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪIrDA<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӵ<EFBFBD>ʵ<EFBFBD>ʷ<EFBFBD>Ƶֵ Ԥ<EFBFBD><EFBFBD>Ƶֵ<EFBFBD><EFBFBD>Χ 1 ~ 255
* @retval uint32_t Ԥ<EFBFBD><EFBFBD>Ƶֵ
*/
__STATIC_INLINE uint32_t std_usart_get_prescaler(USART_t *usartx)
{
return (usartx->GTPR & USART_GTPR_PSV);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param guard_time <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @note guard_time ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x00~ 0x0FF, <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>1etu
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_set_guard_time(USART_t *usartx, uint32_t guard_time)
{
MODIFY_REG(usartx->GTPR, USART_GTPR_GT, (guard_time<< USART_GTPR_GT_POS));
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x00~ 0x0FF, <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>1etu
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*/
__STATIC_INLINE uint32_t std_usart_smartcard_get_guard_time(USART_t *usartx)
{
return ((usartx->GTPR & USART_GTPR_GT) >> USART_GTPR_GT_POS);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽԤ<EFBFBD>ƽ<EFBFBD><EFBFBD>յĿ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param block_length Ԥ<EFBFBD>ƽ<EFBFBD><EFBFBD>յĿ<EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x00~ 0x0FF,
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_smartcard_set_block_length(USART_t *usartx, uint32_t block_length)
{
MODIFY_REG(usartx->RTO, USART_RTO_BLKN, block_length<<USART_RTO_BLKN_POS);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART <EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD>ģʽԤ<EFBFBD>ƽ<EFBFBD><EFBFBD>յĿ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Ԥ<EFBFBD>ƽ<EFBFBD><EFBFBD>տ<EFBFBD><EFBFBD>
*/
__STATIC_INLINE uint32_t std_usart_smartcard_get_block_length(USART_t *usartx)
{
return ((usartx->RTO & USART_RTO_BLKN) >> USART_RTO_BLKN_POS);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART IrDA ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_irda_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_IREN);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART IrDA ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_irda_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_IREN);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD> USART IrDA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param irda_mode USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_IRDA_NORMAL_MODE
* @arg USART_IRDA_LOWPOWER_MODE
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_irda_set_mode(USART_t *usartx, uint32_t irda_mode)
{
MODIFY_REG(usartx->CR3, USART_CR3_IRLP, irda_mode);
}
/**
* @brief <EFBFBD><EFBFBD>ȡ USART IrDA <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t IrDA<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
@arg USART_IRDA_NORMAL_MODE
* @arg USART_IRDA_LOWPOWER_MODE
*/
__STATIC_INLINE uint32_t std_usart_irda_get_mode(USART_t *usartx)
{
return(usartx->CR3 & USART_CR3_IRLP);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART LIN ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_lin_mode_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_LINEN);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART LIN ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_lin_mode_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_LINEN);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param break_length LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_LIN_BREAK_DETECT_10_BITS
* @arg USART_LIN_BREAK_DETECT_11_BITS
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_lin_set_break_length(USART_t *usartx, uint32_t break_length)
{
MODIFY_REG(usartx->CR2, USART_CR2_LBDL, break_length);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg USART_LIN_BREAK_DETECT_10_BITS
* @arg USART_LIN_BREAK_DETECT_11_BITS
*/
__STATIC_INLINE uint32_t std_usart_lin_get_break_length(USART_t *usartx)
{
return (usartx->CR2 & USART_CR2_LBDL);
}
/**
* @brief ʹ<EFBFBD><EFBFBD> USART <EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD>ʱ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_receive_timeout_enable(USART_t *usartx)
{
usartx->CR2 |= (USART_CR2_RTOEN);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD> USART <EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD>ʱ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_receive_timeout_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_RTOEN);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD>ʱʱ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param timeout <EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD>ʱʱ<EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0x00 ~ 0x00FFFFFF <EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_receive_timeout(USART_t *usartx, uint32_t timeout)
{
MODIFY_REG(usartx->RTO, USART_RTO_RTOV, timeout);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD>Ʒ<EFBFBD>ʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hardflow Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD>Ʒ<EFBFBD>ʽ
* @arg USART_FLOWCONTROL_NONE
* @arg USART_FLOWCONTROL_RTS
* @arg USART_FLOWCONTROL_CTS
* @arg USART_FLOWCONTROL_RTS_CTS
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_hardflow_control(USART_t *usartx, uint32_t hardflow)
{
MODIFY_REG(usartx->CR3, USART_CR3_CTSE|USART_CR3_RTSE, hardflow);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART RS485 DE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_de_control_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_DEM);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART RS485 DE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_de_control_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_DEM);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART RS485 DE<EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param setup_time DE<EFBFBD>źŽ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ΧΪ<EFBFBD><EFBFBD>0x00~0x1F
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_rs485_set_de_setup(USART_t *usartx,uint32_t setup_time)
{
MODIFY_REG(usartx->CR1, USART_CR1_DEST, setup_time<<USART_CR1_DEST_POS);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART RS485 DE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źű<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param hold_time USART DE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źű<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ΧΪ<EFBFBD><EFBFBD>0x00~0x1F
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_rs485_set_de_hold(USART_t *usartx,uint32_t hold_time)
{
MODIFY_REG(usartx->CR1, USART_CR1_DEHT, hold_time<<USART_CR1_DEHT_POS);
}
/**
* @brief USART RS485 DE<EFBFBD>źż<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param polarity USART RS485 DE<EFBFBD>źż<EFBFBD><EFBFBD><EFBFBD>
* @arg USART_DE_POLARITY_HIGH
* @arg USART_DE_POLARITY_LOW
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_de_control_polarity(USART_t *usartx, uint32_t polarity)
{
MODIFY_REG(usartx->CR3, USART_CR3_DEP, polarity);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD>߰<EFBFBD>˫<EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_half_duplex_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_HDEN);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD>߰<EFBFBD>˫<EFBFBD><EFBFBD>ģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_half_duplex_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_HDEN);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART DMAģʽUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_dma_rx_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_DMAR);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART DMAģʽUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_dma_rx_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_DMAR);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART DMAģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_dma_tx_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_DMAT);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART DMAģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_dma_tx_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_DMAT);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֹDMA
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_dma_off_onrxerror_enable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_DDRE);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֹDMA
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_dma_off_onrxerror_disable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_DDRE);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_overrun_disable(USART_t *usartx)
{
usartx->CR3 |= (USART_CR3_ORED);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_overrun_enable(USART_t *usartx)
{
usartx->CR3 &= (~USART_CR3_ORED);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_request_tx_flush(USART_t *usartx)
{
usartx->RQR |= (USART_RQR_TXFLUQ);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_request_rx_flush(USART_t *usartx)
{
usartx->RQR |= (USART_RQR_RXFLUQ);
}
/**
* @brief USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>֡
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_request_break_frame(USART_t *usartx)
{
usartx->RQR |= (USART_RQR_BKSENDQ);
}
/**
* @brief USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭģʽ
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_request_enter_mutemode(USART_t *usartx)
{
usartx->RQR |= (USART_RQR_MUTEQ);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART CR1<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param interrupt USART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
* @arg USART_CR1_INTERRUPT_IDLE
* @arg USART_CR1_INTERRUPT_RXNE
* @arg USART_CR1_INTERRUPT_TC
* @arg USART_CR1_INTERRUPT_TXE
* @arg USART_CR1_INTERRUPT_PE
* @arg USART_CR1_INTERRUPT_CM
* @arg USART_CR1_INTERRUPT_RTO
* @arg USART_CR1_INTERRUPT_EB
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_cr1_interrupt_enable(USART_t *usartx, uint32_t interrupt)
{
usartx->CR1 |= (interrupt);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART CR1<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param interrupt USART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
* @arg USART_CR1_INTERRUPT_IDLE
* @arg USART_CR1_INTERRUPT_RXNE
* @arg USART_CR1_INTERRUPT_TC
* @arg USART_CR1_INTERRUPT_TXE
* @arg USART_CR1_INTERRUPT_PE
* @arg USART_CR1_INTERRUPT_CM
* @arg USART_CR1_INTERRUPT_RTO
* @arg USART_CR1_INTERRUPT_EB
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_cr1_interrupt_disable(USART_t *usartx, uint32_t interrupt)
{
usartx->CR1 &= (~interrupt);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART CR1<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param interrupt USART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
* @arg USART_CR1_INTERRUPT_IDLE
* @arg USART_CR1_INTERRUPT_RXNE
* @arg USART_CR1_INTERRUPT_TC
* @arg USART_CR1_INTERRUPT_TXE
* @arg USART_CR1_INTERRUPT_PE
* @arg USART_CR1_INTERRUPT_CM
* @arg USART_CR1_INTERRUPT_RTO
* @arg USART_CR1_INTERRUPT_EB
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD>ж<EFBFBD>Դʹ<EFBFBD><EFBFBD>״̬
* @arg true: <EFBFBD><EFBFBD>ʾѡ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դʹ<EFBFBD><EFBFBD>
* @arg false: <EFBFBD><EFBFBD>ʾѡ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դδʹ<EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_usart_get_cr1_interrupt_enable(USART_t *usartx, uint32_t interrupt)
{
return ((usartx->CR1 & (interrupt)) == (interrupt));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_lin_break_detection_interrupt_enable(USART_t *usartx)
{
usartx->CR2 |= USART_CR2_INTERRUPT_LBD;
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_lin_break_detection_interrupt_disable(USART_t *usartx)
{
usartx->CR2 &= (~USART_CR2_INTERRUPT_LBD);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART LIN ģʽ<EFBFBD>ж<EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD>ж<EFBFBD>Դʹ<EFBFBD><EFBFBD>״̬
* @arg true <EFBFBD><EFBFBD>ʾѡ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դʹ<EFBFBD><EFBFBD>
* @arg false <EFBFBD><EFBFBD>ʾѡ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դδʹ<EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_usart_lin_get_break_interrupt_enable(USART_t *usartx)
{
return ((usartx->CR2 & (USART_CR2_INTERRUPT_LBD)) == (USART_CR2_INTERRUPT_LBD));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART CR3<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param interrupt USART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
* @arg USART_CR3_INTERRUPT_ERR
* @arg USART_CR3_INTERRUPT_CTS
* @arg USART_CR3_INTERRUPT_TCBGT
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_cr3_interrupt_enable(USART_t *usartx, uint32_t interrupt)
{
usartx->CR3 |= (interrupt);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART CR3<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param interrupt USART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
* @arg USART_CR3_INTERRUPT_ERR
* @arg USART_CR3_INTERRUPT_CTS
* @arg USART_CR3_INTERRUPT_TCBGT
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_cr3_interrupt_disable(USART_t *usartx, uint32_t interrupt)
{
usartx->CR3 &= (~interrupt);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART CR3<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param interrupt ʹ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
* @arg USART_CR3_INTERRUPT_ERR
* @arg USART_CR3_INTERRUPT_CTS
* @arg USART_CR3_INTERRUPT_TCBGT
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD>ж<EFBFBD>Դʹ<EFBFBD><EFBFBD>״̬
* @arg true <EFBFBD><EFBFBD>ʾѡ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դʹ<EFBFBD><EFBFBD>
* @arg false <EFBFBD><EFBFBD>ʾѡ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>Դδʹ<EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_usart_get_cr3_interrupt_enable(USART_t *usartx, uint32_t interrupt)
{
return ((usartx->CR3 & (interrupt)) == (interrupt));
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD><EFBFBD>־
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param flag USART<EFBFBD><EFBFBD>־
* @arg USART_FLAG_REACK
* @arg USART_FLAG_TEACK
* @arg USART_FLAG_IDLE
* @arg USART_FLAG_RECEIVE_BUSY
* @arg USART_FLAG_TXE
* @arg USART_FLAG_TC
* @arg USART_FLAG_TCBGT
* @arg USART_FLAG_RXNE
* @arg USART_FLAG_LBD
* @arg USART_FLAG_CM
* @arg USART_FLAG_BKSEND
* @arg USART_FLAG_CTS
* @arg USART_FLAG_CTSIF
* @arg USART_FLAG_RTO
* @arg USART_FLAG_EB
* @arg USART_FLAG_RWU
* @arg USART_FLAG_ORE
* @arg USART_FLAG_NOISE
* @arg USART_FLAG_FE
* @arg USART_FLAG_PE
* @retval bool USART<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
* @arg true ״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg flase ״̬δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_usart_get_flag(USART_t *usartx,uint32_t flag)
{
return ((usartx->ISR & (flag)) == (flag));
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD>־
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param clear_flag USART<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>Ϣ
* @arg USART_CLEAR_PE
* @arg USART_CLEAR_FE
* @arg USART_CLEAR_NOISE
* @arg USART_CLEAR_ORE
* @arg USART_CLEAR_IDLE
* @arg USART_CLEAR_TC
* @arg USART_CLEAR_TCBGT
* @arg USART_CLEAR_LBD
* @arg USART_CLEAR_CTS
* @arg USART_CLEAR_RTO
* @arg USART_CLEAR_EB
* @arg USART_CLEAR_CM
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_clear_flag(USART_t *usartx, uint32_t clear_flag)
{
usartx->ICR = (clear_flag);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_rx_enable(USART_t *usartx)
{
usartx->CR1 |= (USART_CR1_RE);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_rx_disable(USART_t *usartx)
{
usartx->CR1 &= (~USART_CR1_RE);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_tx_enable(USART_t *usartx)
{
usartx->CR1 |= (USART_CR1_TE);
}
/**
* @brief <EFBFBD><EFBFBD>ֹUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_tx_disable(USART_t *usartx)
{
usartx->CR1 &= (~USART_CR1_TE);
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USART<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
__STATIC_INLINE uint32_t std_usart_rx_read_data(USART_t *usartx)
{
return (usartx->RDR & USART_RDR_RDR);
}
/**
* @brief д<EFBFBD><EFBFBD>USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param data_value <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_tx_write_data(USART_t *usartx, uint32_t data_value)
{
usartx->TDR = data_value;
}
/**
* @brief д<EFBFBD><EFBFBD>USART <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param brr_value <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶֵ <EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD> 0x10 ~ 0xFFFF
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_usart_set_brr_value(USART_t *usartx, uint32_t brr_value)
{
usartx->BRR = brr_value;
}
/**
* @brief <EFBFBD><EFBFBD>ȡUSART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param usartx USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t USART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
__STATIC_INLINE uint32_t std_usart_get_brr_value(USART_t *usartx)
{
return (usartx->BRR & USART_BRR_BRR);
}
std_status_t std_usart_init(USART_t *usartx,std_usart_init_t *usart_init_param);
void std_usart_deinit(USART_t *usartx);
void std_usart_struct_init(std_usart_init_t *usart_init_struct);
void std_usart_sync_clk_init(USART_t *usartx,std_usart_sync_clk_init_t *usart_sync_clock_init_param);
void std_usart_sync_clk_struct_init(std_usart_sync_clk_init_t *usart_sync_clock_init_struct);
std_status_t std_usart_baudrate_config(USART_t *usartx, uint32_t baudrate);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
/**
* @}
*/
/**
* @}
*/
#endif /* CIU32L051_STD_USART_H */