921 lines
34 KiB
C
921 lines
34 KiB
C
|
/************************************************************************************************/
|
|||
|
/**
|
|||
|
* @file ciu32L051_std_lpuart.h
|
|||
|
* @author MCU Ecosystem Development Team
|
|||
|
* @brief LPUART STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD>ṩLPUART<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_LPUART_H
|
|||
|
#define CIU32L051_STD_LPUART_H
|
|||
|
|
|||
|
/************************************************************************************************/
|
|||
|
/**
|
|||
|
* @addtogroup CIU32L051_STD_Driver
|
|||
|
* @{
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @defgroup LPUART LPUART
|
|||
|
* @brief <EFBFBD><EFBFBD><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 LPUART_Types LPUART Types
|
|||
|
* @brief LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @{
|
|||
|
*
|
|||
|
*/
|
|||
|
/************************************************************************************************/
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD>嶨<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
uint32_t prescaler; /**< LPUART ʱ<><CAB1>Ԥ<EFBFBD><D4A4>Ƶ
|
|||
|
@arg LPUART_PRESCALER_DIV1 ... */
|
|||
|
uint32_t direction; /**< LPUART <20><><EFBFBD>䷽<EFBFBD><E4B7BD>
|
|||
|
@arg LPUART_DIRECTION_SEND ... */
|
|||
|
uint32_t baudrate; /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
uint32_t wordlength; /**< LPUART <20><><EFBFBD><EFBFBD>֡<EFBFBD>ֳ<EFBFBD>
|
|||
|
@arg LPUART_WORDLENGTH_8BITS ... */
|
|||
|
uint32_t stopbits; /**< LPUART <20><><EFBFBD><EFBFBD>ֹ֡ͣλ<D6B9><CEBB><EFBFBD><EFBFBD>
|
|||
|
@arg LPUART_STOPBITS_1 ... */
|
|||
|
uint32_t parity; /**< LPUART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>żУ<C5BC><D0A3>
|
|||
|
@arg LPUART_PARITY_NONE ... */
|
|||
|
uint32_t hardware_flow; /**< LPUART RS232Ӳ<32><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
@arg LPUART_FLOWCONTROL_NONE ... */
|
|||
|
} std_lpuart_init_t;
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART Ԥ<EFBFBD><EFBFBD>Ƶֵ
|
|||
|
*/
|
|||
|
static const uint16_t LPUART_PRESCALER_TABLE[] =
|
|||
|
{
|
|||
|
(uint16_t)1U,
|
|||
|
(uint16_t)2U,
|
|||
|
(uint16_t)4U,
|
|||
|
(uint16_t)6U,
|
|||
|
(uint16_t)8U,
|
|||
|
(uint16_t)10U,
|
|||
|
(uint16_t)12U,
|
|||
|
(uint16_t)16U,
|
|||
|
(uint16_t)32U,
|
|||
|
(uint16_t)64U,
|
|||
|
(uint16_t)128U,
|
|||
|
(uint16_t)256U
|
|||
|
};
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
|
|||
|
/*--------------------------------------------define--------------------------------------------*/
|
|||
|
/************************************************************************************************/
|
|||
|
/**
|
|||
|
* @defgroup LPUART_Constants LPUART Constants
|
|||
|
* @brief LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>弰<EFBFBD>궨<EFBFBD><EFBFBD>
|
|||
|
* @{
|
|||
|
*
|
|||
|
*/
|
|||
|
|
|||
|
#define LPUART_t USART_t
|
|||
|
|
|||
|
/* LPUART<52><54>־<EFBFBD><D6BE><EFBFBD><EFBFBD>λ(LPUART_ICR<43>Ĵ<EFBFBD><C4B4><EFBFBD>) */
|
|||
|
#define LPUART_CLEAR_PE USART_ICR_PECF /**< <20><>żУ<C5BC><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_CLEAR_FE USART_ICR_FECF /**< ֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_CLEAR_ORE USART_ICR_ORECF /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_CLEAR_TC USART_ICR_TCCF /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_CLEAR_CTS USART_ICR_CTSCF /**< CTS<54><53>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_CLEAR_CM USART_ICR_CMCF /**< <20>ַ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_CLEAR_LPWK USART_ICR_LPWKCF /**< <20><EFBFBD><CDB9><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>ѱ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD> */
|
|||
|
|
|||
|
/* LPUART<52><54>־(LPUART_ISR<53>Ĵ<EFBFBD><C4B4><EFBFBD>) */
|
|||
|
#define LPUART_FLAG_PE USART_ISR_PE /**< LPUART <20><>żУ<C5BC><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_FE USART_ISR_FE /**< LPUART ֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_ORE USART_ISR_ORE /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_RXNE USART_ISR_RXNE /**< LPUART <20><><EFBFBD>ռĴ<D5BC><C4B4><EFBFBD><EFBFBD>ǿձ<C7BF>־ */
|
|||
|
#define LPUART_FLAG_TC USART_ISR_TC /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_TXE USART_ISR_TXE /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD>ձ<EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_CTSIF USART_ISR_CTSIF /**< LPUART CTS<54><53>־<EFBFBD>жϱ<D0B6>־ */
|
|||
|
#define LPUART_FLAG_CTS USART_ISR_CTS /**< LPUART CTS<54><53>־ */
|
|||
|
#define LPUART_FLAG_CM USART_ISR_CMF /**< LPUART <20>ַ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_LPWKF USART_ISR_LPWK /**< LPUART <20><EFBFBD><CDB9><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>ѱ<EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_TEACK USART_ISR_TEACK /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ȷ<EFBFBD>ϱ<EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_REACK USART_ISR_REACK /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ȷ<EFBFBD>ϱ<EFBFBD>־ */
|
|||
|
#define LPUART_FLAG_BUSY USART_ISR_BUSY /**< LPUART <20><><EFBFBD><EFBFBD>æ<EFBFBD><C3A6>־ */
|
|||
|
|
|||
|
/* LPUART<52>ж<EFBFBD>ʹ<EFBFBD><CAB9>λ(LPUART_CR1<52><31>LPUART_CR3<52>Ĵ<EFBFBD><C4B4><EFBFBD>) */
|
|||
|
#define LPUART_CR1_INTERRUPT_RXNE USART_CR1_RXNEIE /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
#define LPUART_CR1_INTERRUPT_TC USART_CR1_TCIE /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
#define LPUART_CR1_INTERRUPT_TXE USART_CR1_TXEIE /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼĴ<DDBC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
#define LPUART_CR1_INTERRUPT_PE USART_CR1_PEIE /**< LPUART <20><>żУ<C5BC><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
#define LPUART_CR1_INTERRUPT_CM USART_CR1_CMIE /**< LPUART <20>ַ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
#define LPUART_CR3_INTERRUPT_ERR USART_CR3_EIE /**< LPUART <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>(֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
|||
|
#define LPUART_CR3_INTERRUPT_CTS USART_CR3_CTSIE /**< LPUART CTS<54>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
#define LPUART_CR3_INTERRUPT_LPWK USART_CR3_LPWKIE /**< LPUART Stop<6F><EFBFBD><CDB9><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9> */
|
|||
|
|
|||
|
/*
|
|||
|
* LPUARTʱ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* Ĭ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>256<EFBFBD><EFBFBD>Ƶ
|
|||
|
*/
|
|||
|
#define LPUART_PRESCALER_DIV1 (0x00000000U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk */
|
|||
|
#define LPUART_PRESCALER_DIV2 (0x00000001U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/2 */
|
|||
|
#define LPUART_PRESCALER_DIV4 (0x00000002U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/4 */
|
|||
|
#define LPUART_PRESCALER_DIV6 (0x00000003U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/6 */
|
|||
|
#define LPUART_PRESCALER_DIV8 (0x00000004U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/8 */
|
|||
|
#define LPUART_PRESCALER_DIV10 (0x00000005U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/10 */
|
|||
|
#define LPUART_PRESCALER_DIV12 (0x00000006U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/12 */
|
|||
|
#define LPUART_PRESCALER_DIV16 (0x00000007U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/16 */
|
|||
|
#define LPUART_PRESCALER_DIV32 (0x00000008U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/32 */
|
|||
|
#define LPUART_PRESCALER_DIV64 (0x00000009U) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/64 */
|
|||
|
#define LPUART_PRESCALER_DIV128 (0x0000000AU) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/128 */
|
|||
|
#define LPUART_PRESCALER_DIV256 (0x0000000BU) /**< Ԥ<><D4A4>Ƶʱ<C6B5><CAB1>fclk_pres = fclk/256 */
|
|||
|
|
|||
|
/* LPUART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_WORDLENGTH_8BITS USART_CR1_WL8BITS /**< 8-bits <20>ֳ<EFBFBD> */
|
|||
|
#define LPUART_WORDLENGTH_9BITS USART_CR1_WL9BITS /**< 9-bits <20>ֳ<EFBFBD> */
|
|||
|
|
|||
|
/* LPUART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>żУ<C5BC><D0A3> */
|
|||
|
#define LPUART_PARITY_NONE (0x00000000U) /**< <20><>У<EFBFBD><D0A3> */
|
|||
|
#define LPUART_PARITY_EVEN USART_CR1_PEN /**< żУ<C5BC><D0A3> */
|
|||
|
#define LPUART_PARITY_ODD (USART_CR1_PEN | USART_CR1_PTS) /**< <20><>У<EFBFBD><D0A3> */
|
|||
|
|
|||
|
/* LPUART <20><><EFBFBD><EFBFBD>ֹ֡ͣλ */
|
|||
|
#define LPUART_STOPBITS_1 (0x00000000U) /**< 1bitֹͣλ */
|
|||
|
#define LPUART_STOPBITS_2 USART_CR2_STOPBIT_2 /**< 2bitsֹͣλ */
|
|||
|
|
|||
|
/* LPUART <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>С<EFBFBD><D0A1> */
|
|||
|
#define LPUART_DATA_ORDER_LSBFIRST (0x00000000U) /**< <20><><EFBFBD><EFBFBD>Чλ<D0A7><CEBB><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DATA_ORDER_MSBFIRST USART_CR2_MSBFIRST /**< <20><><EFBFBD><EFBFBD>Чλ<D0A7><CEBB><EFBFBD><EFBFBD> */
|
|||
|
|
|||
|
/* LPUART <20><><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD><EFBFBD><EFBFBD>Χ */
|
|||
|
#define LPUART_BRR_MIN (0x00000300U) /**< LPUART<52><54><EFBFBD><EFBFBD><EFBFBD>ʼĴ<CABC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ */
|
|||
|
#define LPUART_BRR_MAX (0x000FFFFFU) /**< LPUART<52><54><EFBFBD><EFBFBD><EFBFBD>ʼĴ<CABC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
|
|||
|
|
|||
|
/* LPUART RS232Ӳ<32><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_FLOWCONTROL_NONE (0x00000000U) /**< <20><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD> */
|
|||
|
#define LPUART_FLOWCONTROL_RTS USART_CR3_RTSE /**< RTSʹ<53><CAB9> */
|
|||
|
#define LPUART_FLOWCONTROL_CTS USART_CR3_CTSE /**< CTSʹ<53><CAB9> */
|
|||
|
#define LPUART_FLOWCONTROL_RTS_CTS (USART_CR3_RTSE | USART_CR3_CTSE) /**< RTS<54><53>CTSͬʱʹ<CAB1><CAB9> */
|
|||
|
|
|||
|
/* LPUART <20><><EFBFBD>䷽<EFBFBD><E4B7BD> */
|
|||
|
#define LPUART_DIRECTION_NONE (0x00000000U) /**< δʹ<CEB4>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DIRECTION_SEND USART_CR1_TE /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ʹ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DIRECTION_RECEIVE USART_CR1_RE /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ʹ<EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DIRECTION_SEND_RECEIVE (USART_CR1_TE |USART_CR1_RE) /**< <20><><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>ģʽ<C4A3><CABD>ʹ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
|
|||
|
/* DMAģʽLPUART<52><54><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DMA_SEND_DISABLE (0x00000000U) /**< <20><>ֹDMAģʽLPUART<52><54><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DMA_SEND_ENABLE USART_CR3_DMAT /**< ʹ<><CAB9>DMAģʽLPUART<52><54><EFBFBD><EFBFBD> */
|
|||
|
|
|||
|
/* DMAģʽLPUART<52><54><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DMA_RECEIVE_DISABLE (0x00000000U) /**< <20><>ֹDMAģʽLPUART<52><54><EFBFBD><EFBFBD> */
|
|||
|
#define LPUART_DMA_RECEIVE_ENABLE USART_CR3_DMAR /**< ʹ<><CAB9>DMAģʽLPUART<52><54><EFBFBD><EFBFBD> */
|
|||
|
|
|||
|
/* LPUART<52><54><EFBFBD>߰<EFBFBD>˫<EFBFBD><CBAB>ģʽ */
|
|||
|
#define LPUART_HALF_DUPLEX_DISABLE (0x00000000U) /**< <20><>ֹLPUART<52><54><EFBFBD>߰<EFBFBD>˫<EFBFBD><CBAB>ģʽ */
|
|||
|
#define LPUART_HALF_DUPLEX_ENABLE USART_CR3_HDEN /**< ʹ<><CAB9>LPUART<52><54><EFBFBD>߰<EFBFBD>˫<EFBFBD><CBAB>ģʽ */
|
|||
|
|
|||
|
/* LPUART Stop<6F><EFBFBD><CDB9><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>Դѡ<D4B4><D1A1> */
|
|||
|
#define LPUART_WAKEUP_ON_STARTBIT (0x00000000U) /**< <20><>ʼλ<CABC><CEBB><EFBFBD><EFBFBD><E2BBBD> */
|
|||
|
#define LPUART_WAKEUP_ON_READDATA_NOTEMPTY USART_CR3_LPWKS /**< <20><><EFBFBD>յ<EFBFBD>һ֡<D2BB><D6A1><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD> */
|
|||
|
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
|
|||
|
/*-------------------------------------------functions------------------------------------------*/
|
|||
|
|
|||
|
/************************************************************************************************/
|
|||
|
/**
|
|||
|
* @defgroup LPUART_External_Functions LPUART External Functions
|
|||
|
* @brief LPUART<EFBFBD><EFBFBD><EFBFBD>⺯<EFBFBD><EFBFBD>
|
|||
|
* @{
|
|||
|
*
|
|||
|
*/
|
|||
|
/************************************************************************************************/
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 |= (USART_CR1_UE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 &= (~USART_CR1_UE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param parity LPUART <EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_PARITY_NONE
|
|||
|
* @arg LPUART_PARITY_EVEN
|
|||
|
* @arg LPUART_PARITY_ODD
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_parity(LPUART_t *lpuartx,uint32_t parity)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR1, USART_CR1_PTS | USART_CR1_PEN, parity);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡLPUART<EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t LPUART<EFBFBD><EFBFBD>żУ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_PARITY_NONE
|
|||
|
* @arg LPUART_PARITY_EVEN
|
|||
|
* @arg LPUART_PARITY_ODD
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_parity(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return(lpuartx->CR1 & (USART_CR1_PTS | USART_CR1_PEN));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param word_length LPUART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_WORDLENGTH_8BITS
|
|||
|
* @arg LPUART_WORDLENGTH_9BITS
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_word_length(LPUART_t *lpuartx, uint32_t word_length)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR1, USART_CR1_WL, word_length);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡLPUART<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t LPUART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_WORDLENGTH_8BITS
|
|||
|
* @arg LPUART_WORDLENGTH_9BITS
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_word_length(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return (lpuartx->CR1 & USART_CR1_WL);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART ֹͣλ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param stopbits LPUART ֹͣλλ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_STOPBITS_1
|
|||
|
* @arg LPUART_STOPBITS_2
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_stopbits(LPUART_t *lpuartx, uint32_t stopbits)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR2, USART_CR2_STOPBIT, stopbits);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡLPUARTֹͣλ
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t LPUARTֹͣλλ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_STOPBITS_1
|
|||
|
* @arg LPUART_STOPBITS_2
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_stopbits(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return(lpuartx->CR2 & USART_CR2_STOPBIT);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param data_order LPUART <EFBFBD>ַ<EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_DATA_ORDER_LSBFIRST
|
|||
|
* @arg LPUART_DATA_ORDER_MSBFIRST
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_data_order(LPUART_t *lpuartx, uint32_t data_order)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR2, USART_CR2_MSBFIRST, data_order);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡ LPUART <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t LPUART <EFBFBD>ַ<EFBFBD>֡<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_DATA_ORDER_LSBFIRST
|
|||
|
* @arg LPUART_DATA_ORDER_MSBFIRST
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_data_order(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return(lpuartx->CR2 & USART_CR2_MSBFIRST);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD><EFBFBD><EFBFBD>䷽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param direction <EFBFBD><EFBFBD><EFBFBD>䷽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_DIRECTION_NONE
|
|||
|
* @arg LPUART_DIRECTION_SEND
|
|||
|
* @arg LPUART_DIRECTION_RECEIVE
|
|||
|
* @arg LPUART_DIRECTION_SEND_RECEIVE
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_transfer_direction(LPUART_t *lpuartx, uint32_t direction)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR1, USART_CR1_TE|USART_CR1_RE, direction);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡ LPUART <EFBFBD><EFBFBD><EFBFBD>䷽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD>䷽<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_DIRECTION_NONE
|
|||
|
* @arg LPUART_DIRECTION_SEND
|
|||
|
* @arg LPUART_DIRECTION_RECEIVE
|
|||
|
* @arg LPUART_DIRECTION_SEND_RECEIVE
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_transfer_direction(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return(lpuartx->CR1 & (USART_CR1_TE|USART_CR1_RE));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>LPUART ƥ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param data_match ƥ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD> 8bits 0~0xFF
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_data_match(LPUART_t *lpuartx, uint32_t data_match)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR2, USART_CR2_LPUART_CMFD, (data_match << USART_CR2_LPUART_CMFD_POS));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART Ԥ<EFBFBD><EFBFBD>Ƶ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param prescaler_value LPUART Ԥ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_PRESCALER_DIV1
|
|||
|
* @arg LPUART_PRESCALER_DIV2
|
|||
|
* @arg LPUART_PRESCALER_DIV4
|
|||
|
* @arg ...
|
|||
|
* @arg LPUART_PRESCALER_DIV256
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_kclk_prescaler(LPUART_t *lpuartx, uint32_t prescaler_value)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->PRESC, USART_PRESC_PRESCALER, prescaler_value);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡ LPUART Ԥ<EFBFBD><EFBFBD>Ƶֵ
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t LPUARTԤ<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶֵ
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_kclk_prescaler(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return (uint32_t)(LPUART_PRESCALER_TABLE[(lpuartx->PRESC & USART_PRESC_PRESCALER)]);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD>ӵ<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param wakeup_method LPUART ͨ<EFBFBD><EFBFBD>LPWK<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD><EFBFBD>ź<EFBFBD>Դѡѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_WAKEUP_ON_STARTBIT
|
|||
|
* @arg LPUART_WAKEUP_ON_READDATA_NOTEMPTY
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_wakeup_method(LPUART_t *lpuartx, uint32_t wakeup_method)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR3, USART_CR3_LPWKS, wakeup_method);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD>LPUART Stopģʽ<EFBFBD>»<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_wakeup_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 |= (USART_CR1_UEWK);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹLPUART Stopģʽ<EFBFBD>»<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_wakeup_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 &= (~USART_CR1_UEWK);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_rx_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 |= (USART_CR1_RE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_rx_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 &= (~USART_CR1_RE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_tx_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 |= (USART_CR1_TE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_tx_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR1 &= (~USART_CR1_TE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART <EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_pin_swap_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 |= (USART_CR2_SWAP);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART <EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_pin_swap_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 &= (~USART_CR2_SWAP);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART RX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_rx_level_invert_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 |= (USART_CR2_RXIVC);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART RX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_rx_level_invert_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 &= (~USART_CR2_RXIVC);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART TX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_tx_level_invert_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 |= (USART_CR2_TXIVC);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART TX<EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_tx_level_invert_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 &= (~USART_CR2_TXIVC);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART <EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_data_invert_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 |= (USART_CR2_DATAIVC);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART <EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_data_invert_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR2 &= (~USART_CR2_DATAIVC);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART <EFBFBD><EFBFBD><EFBFBD>߰<EFBFBD>˫<EFBFBD><EFBFBD>ģʽ
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_half_duplex_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (USART_CR3_HDEN);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART <EFBFBD><EFBFBD><EFBFBD>߰<EFBFBD>˫<EFBFBD><EFBFBD>ģʽ
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_half_duplex_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~USART_CR3_HDEN);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART DMAģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_dma_rx_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (USART_CR3_DMAR);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART DMAģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_dma_rx_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~USART_CR3_DMAR);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART DMAģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_dma_tx_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (USART_CR3_DMAT);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART DMAģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_dma_tx_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~USART_CR3_DMAT);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART <EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֹDMA
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_dma_off_onrxerror_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (USART_CR3_DDRE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART <EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֹDMA
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_dma_off_onrxerror_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~USART_CR3_DDRE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART RTSӲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_hardflow_control_rts_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (USART_CR3_RTSE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART RTSӲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_hardflow_control_rts_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~USART_CR3_RTSE);
|
|||
|
}
|
|||
|
/**
|
|||
|
* @brief LPUART Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param hardflow Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><EFBFBD>Ʒ<EFBFBD>ʽ
|
|||
|
* @arg LPUART_FLOWCONTROL_NONE
|
|||
|
* @arg LPUART_FLOWCONTROL_RTS
|
|||
|
* @arg LPUART_FLOWCONTROL_CTS
|
|||
|
* @arg LPUART_FLOWCONTROL_RTS_CTS
|
|||
|
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_hardflow_control(LPUART_t *lpuartx, uint32_t hardflow)
|
|||
|
{
|
|||
|
MODIFY_REG(lpuartx->CR3, USART_CR3_CTSE|USART_CR3_RTSE, hardflow);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD> LPUART CTSӲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_hardflow_control_cts_enable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (USART_CR3_CTSE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹ LPUART CTSӲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_hardflow_control_cts_disable(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~USART_CR3_CTSE);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD>LPUART CR1<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param interrupt LPUART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_CR1_INTERRUPT_RXNE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_TC
|
|||
|
* @arg LPUART_CR1_INTERRUPT_TXE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_PE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_CM
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_cr1_interrupt_enable(LPUART_t *lpuartx, uint32_t interrupt)
|
|||
|
{
|
|||
|
lpuartx->CR1 |= (interrupt);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹLPUART CR1<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param interrupt LPUART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_CR1_INTERRUPT_RXNE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_TC
|
|||
|
* @arg LPUART_CR1_INTERRUPT_TXE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_PE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_CM
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_cr1_interrupt_disable(LPUART_t *lpuartx, uint32_t interrupt)
|
|||
|
{
|
|||
|
lpuartx->CR1 &= (~interrupt);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡLPUART CR1<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param interrupt LPUART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_CR1_INTERRUPT_RXNE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_TC
|
|||
|
* @arg LPUART_CR1_INTERRUPT_TXE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_PE
|
|||
|
* @arg LPUART_CR1_INTERRUPT_CM
|
|||
|
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>LPUART<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_lpuart_cr1_get_interrupt_enable(LPUART_t *lpuartx, uint32_t interrupt)
|
|||
|
{
|
|||
|
return ((lpuartx->CR1 & (interrupt)) == (interrupt));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief ʹ<EFBFBD><EFBFBD>LPUART CR3<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param interrupt LPUART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_CR3_INTERRUPT_ERR
|
|||
|
* @arg LPUART_CR3_INTERRUPT_CTS
|
|||
|
* @arg LPUART_CR3_INTERRUPT_LPWK
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_cr3_interrupt_enable(LPUART_t *lpuartx, uint32_t interrupt)
|
|||
|
{
|
|||
|
lpuartx->CR3 |= (interrupt);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ֹLPUART CR3<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param interrupt LPUART<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_CR3_INTERRUPT_ERR
|
|||
|
* @arg LPUART_CR3_INTERRUPT_CTS
|
|||
|
* @arg LPUART_CR3_INTERRUPT_LPWK
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_cr3_interrupt_disable(LPUART_t *lpuartx, uint32_t interrupt)
|
|||
|
{
|
|||
|
lpuartx->CR3 &= (~interrupt);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡLPUART CR3<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param interrupt ʹ<EFBFBD><EFBFBD>I2C<EFBFBD>ж<EFBFBD>Դѡ<EFBFBD><EFBFBD>
|
|||
|
* @arg LPUART_CR3_INTERRUPT_ERR
|
|||
|
* @arg LPUART_CR3_INTERRUPT_CTS
|
|||
|
* @arg LPUART_CR3_INTERRUPT_LPWK
|
|||
|
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>LPUART<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_lpuart_cr3_get_interrupt_enable(LPUART_t *lpuartx, uint32_t interrupt)
|
|||
|
{
|
|||
|
return ((lpuartx->CR3 & (interrupt)) == (interrupt));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡ LPUART <EFBFBD><EFBFBD>־״̬
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param flag LPUART<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>Ϣ
|
|||
|
* @arg LPUART_FLAG_PE
|
|||
|
* @arg LPUART_FLAG_FE
|
|||
|
* @arg LPUART_FLAG_ORE
|
|||
|
* @arg LPUART_FLAG_RXNE
|
|||
|
* @arg LPUART_FLAG_TC
|
|||
|
* @arg LPUART_FLAG_TXE
|
|||
|
* @arg LPUART_FLAG_CTSIF
|
|||
|
* @arg LPUART_FLAG_CTS
|
|||
|
* @arg LPUART_FLAG_LPWKF
|
|||
|
* @arg LPUART_FLAG_TEACK
|
|||
|
* @arg LPUART_FLAG_REACK
|
|||
|
* @arg LPUART_FLAG_BUSY
|
|||
|
* @arg LPUART_FLAG_CM
|
|||
|
* @arg LPUART_FLAG_LPWK
|
|||
|
|
|||
|
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>λ״̬
|
|||
|
* @arg true<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʾָ<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>־<EFBFBD><EFBFBD>λ
|
|||
|
* @arg false<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾָ<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>־δ<EFBFBD><EFBFBD>λ
|
|||
|
*/
|
|||
|
__STATIC_INLINE bool std_lpuart_get_flag(LPUART_t *lpuartx, uint32_t flag)
|
|||
|
{
|
|||
|
return ((lpuartx->ISR & flag) == flag);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD> LPUART ״̬<EFBFBD><EFBFBD>־
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param clear_flag LPUART<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>Ϣ
|
|||
|
* @arg LPUART_CLEAR_PE
|
|||
|
* @arg LPUART_CLEAR_FE
|
|||
|
* @arg LPUART_CLEAR_ORE
|
|||
|
* @arg LPUART_CLEAR_TC
|
|||
|
* @arg LPUART_CLEAR_CTS
|
|||
|
* @arg LPUART_CLEAR_CM
|
|||
|
* @arg LPUART_CLEAR_LPWK
|
|||
|
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_clear_flag(LPUART_t *lpuartx, uint32_t clear_flag)
|
|||
|
{
|
|||
|
lpuartx->ICR = (clear_flag);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_request_tx_flush(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->RQR |= (USART_RQR_TXFLUQ);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_request_rx_flush(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
lpuartx->RQR |= (USART_RQR_RXFLUQ);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_rx_data_read(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return (lpuartx->RDR & USART_RDR_RDR);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief LPUART д<EFBFBD>뷢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param data <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_tx_data_write(LPUART_t *lpuartx, uint32_t data)
|
|||
|
{
|
|||
|
lpuartx->TDR = data;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief д<EFBFBD><EFBFBD>LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param brr_value <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶֵ:0x300 ~ 0xFFFFF
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
__STATIC_INLINE void std_lpuart_set_brr_value(LPUART_t *lpuartx, uint32_t brr_value)
|
|||
|
{
|
|||
|
lpuartx->BRR = brr_value;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡLPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param lpuartx LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval uint32_t LPUART<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
__STATIC_INLINE uint32_t std_lpuart_get_brr_value(LPUART_t *lpuartx)
|
|||
|
{
|
|||
|
return (lpuartx->BRR & USART_BRR_LPUART);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/* LPUART <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD> */
|
|||
|
void std_lpuart_deinit(LPUART_t *lpuartx);
|
|||
|
std_status_t std_lpuart_init(LPUART_t *lpuartx, std_lpuart_init_t *lpuart_init_param);
|
|||
|
std_status_t std_lpuart_set_baudrate(LPUART_t *lpuartx, uint32_t baudrate);
|
|||
|
|
|||
|
/* LPUART <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD> */
|
|||
|
void std_lpuart_struct_init(std_lpuart_init_t *lpuart_init);
|
|||
|
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
|
|||
|
/**
|
|||
|
* @}
|
|||
|
*/
|
|||
|
#endif /* CIU32L051_STD_LPUART_H */
|