/**
|
******************************************************************************
|
* @file fm33a0xxev_uart.h
|
* @author FM33A0XXEV Application Team
|
* @version V1.0.0
|
* @date 16-April-2020
|
* @brief This file contains all the functions prototypes for the UART firmware library.
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __FM33A0XXEV_UART_H
|
#define __FM33A0XXEV_UART_H
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "FM33A0XXEV.h"
|
#include "fm33a0xxev_CMU.h"
|
|
typedef enum
|
{
|
RxInt,
|
TxInt
|
}UART_IntTypeDef;
|
|
typedef enum
|
{
|
Seven7Bit,
|
Eight8Bit,
|
Nine9Bit,
|
Six6Bit
|
}UART_DataBitTypeDef;
|
|
typedef enum
|
{
|
NONE,
|
EVEN,
|
ODD
|
}UART_ParityBitTypeDef;
|
|
typedef enum
|
{
|
OneBit,
|
TwoBit
|
}UART_StopBitTypeDef;
|
|
typedef struct
|
{
|
uint32_t BaudRate; //²¨ÌØÂÊ
|
UART_DataBitTypeDef DataBit; //Êý¾ÝλÊý
|
UART_ParityBitTypeDef ParityBit; //УÑéλ
|
UART_StopBitTypeDef StopBit; //ֹͣλ
|
uint32_t ClockSrc; // ʱÖÓÔ´Ñ¡Ôñ
|
}UART_SInitTypeDef;
|
|
typedef struct
|
{
|
FunState RXBF_IE; //½ÓÊÕÖжÏ
|
FunState TXBE_IE; //·¢ËÍ»º´æ¿ÕÖжÏ
|
FunState TXSE_IE; //·¢ËÍ»º´æ¿ÕÇÒ·¢ËͼĴæÆ÷¿ÕÖжÏ
|
uint32_t SPBRG; //²¨ÌØÂʲúÉúÆ÷¼Ä´æÆ÷
|
uint32_t PDSEL; //Êý¾Ý³¤¶ÈÑ¡Ôñ
|
uint32_t PARITY; //УÑéλÅäÖÃ
|
FunState RXTO_IE; //½ÓÊÕ³¬Ê±ÖжÏ
|
FunState ERRIE; //´íÎóÖжÏʹÄÜ¿ØÖÆ
|
FunState RXEN; //½ÓÊÕÄ£¿éʹÄÜ¿ØÖÆ
|
uint32_t STOPSEL; //ֹͣλѡÔñ
|
FunState TXEN; //·¢ËÍÄ£¿éʹÄÜ¿ØÖÆ
|
FunState IREN; //·¢ËͺìÍâµ÷ÖÆÊ¹ÄÜλ
|
FunState RXDFLAG; //½ÓÊÕÊý¾ÝÈ¡·´¿ØÖÆÎ»
|
FunState TXDFLAG; //·¢ËÍÊý¾ÝÈ¡·´¿ØÖÆÎ»
|
}UART_InitTypeDef;
|
|
#define UARTIR_CR_IRFLAG_Pos 15 /* ¿ØÖƺìÍâµ÷ÖÆ·¢ËÍÊý¾ÝʱµÄĬÈÏÊä³ö¼«ÐÔ (Infra Red Flag)
|
0£ºÕý¼«ÐÔ
|
1£º¸º¼«ÐÔ */
|
#define UARTIR_CR_IRFLAG_Msk (0x1U << UARTIR_CR_IRFLAG_Pos)
|
#define UARTIR_CR_IRFLAG_POSITIVE (0x0U << UARTIR_CR_IRFLAG_Pos) /* Õý¼«ÐÔ */
|
#define UARTIR_CR_IRFLAG_NEGTIVE (0x1U << UARTIR_CR_IRFLAG_Pos) /* ¸º¼«ÐÔ */
|
|
#define UARTIR_CR_TH_Pos 11 /* ºìÍâÕ¼¿Õ±Èµ÷ÖÆ²ÎÊý (Tranmission High Duty) */
|
#define UARTIR_CR_TH_Msk (0xfU << UARTIR_CR_TH_Pos)
|
|
#define UARTIR_CR_TZBRG_Pos 0 /* ºìÍâµ÷ÖÆÆµÂÊ (Transmission Baud Rate) */
|
#define UARTIR_CR_TZBRG_Msk (0x7ffU << UARTIR_CR_TZBRG_Pos)
|
|
#define UARTx_CSR_BUSY_Pos 24 /* UARTͨÐűêÖ¾£¬Ö»¶Á
|
1£ºUARTÕýÔÚͨÐÅÖÐ
|
0£ºUART¿ÕÏÐ */
|
#define UARTx_CSR_BUSY_Msk (0x1U << UARTx_CSR_BUSY_Pos)
|
|
#define UARTx_CSR_TXIREN_Pos 17 /* ·¢ËͺìÍâµ÷ÖÆÊ¹ÄÜ
|
1£ºÊ¹ÄܺìÍâµ÷ÖÆ·¢ËÍ
|
0£º¹Ø±ÕºìÍâµ÷ÖÆ·¢ËÍ */
|
#define UARTx_CSR_TXIREN_Msk (0x1U << UARTx_CSR_TXIREN_Pos)
|
/* ʹÄܺìÍâµ÷ÖÆ·¢ËÍ */
|
/* ¹Ø±ÕºìÍâµ÷ÖÆ·¢ËÍ */
|
|
#define UARTx_CSR_RXTOEN_Pos 16 /* ½ÓÊÕ³¬Ê±Ê¹ÄÜ
|
1£ºÊ¹ÄܽÓÊÕ³¬Ê±¹¦ÄÜ
|
0£º¹Ø±Õ½ÓÊÕ³¬Ê±¹¦ÄÜ */
|
#define UARTx_CSR_RXTOEN_Msk (0x1U << UARTx_CSR_RXTOEN_Pos)
|
/* ʹÄܽÓÊÕ³¬Ê±¹¦ÄÜ */
|
/* ¹Ø±Õ½ÓÊÕ³¬Ê±¹¦ÄÜ */
|
|
#define UARTx_CSR_IOSWAP_Pos 12 /* RXºÍTXÒý½Å½»»»
|
0£ºÄ¬ÈÏÒý½Å˳Ðò£¨Óë·âװͼһÖ£©
|
1£º½»»»Òý½Å˳Ðò */
|
#define UARTx_CSR_IOSWAP_Msk (0x1U << UARTx_CSR_IOSWAP_Pos)
|
#define UARTx_CSR_IOSWAP_DEFAULT (0x0U << UARTx_CSR_IOSWAP_Pos) /* ĬÈÏÒý½Å˳Ðò£¨Óë·âװͼһÖ£© */
|
#define UARTx_CSR_IOSWAP_EXCHANGE (0x1U << UARTx_CSR_IOSWAP_Pos) /* ½»»»Òý½Å˳Ðò */
|
|
#define UARTx_CSR_DMATXIFCFG_Pos 10 /* DMA·¢ËÍÍê³ÉÖжÏʹÄÜ£¬½öÔÚUARTͨ¹ýDMA½øÐз¢ËÍʱÓÐЧ
|
1£ºIE=1µÄÇé¿öÏ£¬DMAģʽÏ·¢ËÍÍê×îºóÒ»Ö¡ºó£¬ÔÊÐíÖжÏÐźÅÊä³ö£»×îºóһ֮֡ǰµÄÊý¾ÝÖ¡·¢ËÍÍê³Éºó²»ÔÊÐíÖжÏÐźÅÊä³ö
|
0£ºÊÇ·ñÔÊÐíÖжÏÐźÅÊä³ö½öÓÉIE¾ö¶¨ */
|
#define UARTx_CSR_DMATXIFCFG_Msk (0x1U << UARTx_CSR_DMATXIFCFG_Pos)
|
/* IE=1µÄÇé¿öÏ£¬DMAģʽÏ·¢ËÍÍê×îºóÒ»Ö¡ºó£¬ÔÊÐíÖжÏÐźÅÊä³ö£»×îºóһ֮֡ǰµÄÊý¾ÝÖ¡·¢ËÍÍê³Éºó²»ÔÊÐíÖжÏÐźÅÊä³ö */
|
/* ÊÇ·ñÔÊÐíÖжÏÐźÅÊä³ö½öÓÉIE¾ö¶¨ */
|
|
#define UARTx_CSR_BITORD_Pos 9 /* Êý¾Ý·¢ËÍ/½ÓÊÕʱµÄλ˳Ðò
|
0£ºLSB first
|
1£ºMSB first */
|
#define UARTx_CSR_BITORD_Msk (0x1U << UARTx_CSR_BITORD_Pos)
|
#define UARTx_CSR_BITORD_LSB (0x0U << UARTx_CSR_BITORD_Pos) /* LSB first */
|
#define UARTx_CSR_BITORD_MSB (0x1U << UARTx_CSR_BITORD_Pos) /* MSB first */
|
|
#define UARTx_CSR_STOPCFG_Pos 8 /* ֹͣλ¿í¶ÈÅäÖ㬽ö¶Ô·¢ËÍÖ¡¸ñʽÓÐЧ£¬½ÓÊÕʱ²»ÅжÏֹͣλ¸öÊý
|
0£º1λֹͣλ
|
1£º2λֹͣλ */
|
#define UARTx_CSR_STOPCFG_Msk (0x1U << UARTx_CSR_STOPCFG_Pos)
|
#define UARTx_CSR_STOPCFG_1STOPBIT (0x0U << UARTx_CSR_STOPCFG_Pos) /* 1λֹͣλ */
|
#define UARTx_CSR_STOPCFG_2STOPBIT (0x1U << UARTx_CSR_STOPCFG_Pos) /* 2λֹͣλ */
|
|
#define UARTx_CSR_PDSEL_Pos 6 /* ÿ֡µÄÊý¾Ý³¤¶ÈÑ¡Ôñ£»´Ë¼Ä´æÆ÷¶ÔÊý¾Ý·¢ËͺͽÓÊÕͬʱÓÐЧ
|
00£º7λÊý¾Ý
|
01£º8λÊý¾Ý
|
10£º9λÊý¾Ý
|
11£º6λÊý¾Ý */
|
#define UARTx_CSR_PDSEL_Msk (0x3U << UARTx_CSR_PDSEL_Pos)
|
#define UARTx_CSR_PDSEL_7BIT (0x0U << UARTx_CSR_PDSEL_Pos) /* 7λÊý¾Ý */
|
#define UARTx_CSR_PDSEL_8BIT (0x1U << UARTx_CSR_PDSEL_Pos) /* 8λÊý¾Ý */
|
#define UARTx_CSR_PDSEL_9BIT (0x2U << UARTx_CSR_PDSEL_Pos) /* 9λÊý¾Ý */
|
#define UARTx_CSR_PDSEL_6BIT (0x3U << UARTx_CSR_PDSEL_Pos) /* 6λÊý¾Ý */
|
|
#define UARTx_CSR_PARITY_Pos 4 /* УÑéλÅäÖ㻴˼ĴæÆ÷¶ÔÊý¾Ý·¢ËͺͽÓÊÕͬʱÓÐЧ
|
00£ºÎÞУÑéλ
|
01£ºÅ¼Ð£Ñé
|
10£ºÆæÐ£Ñé
|
11£ºRFU */
|
#define UARTx_CSR_PARITY_Msk (0x3U << UARTx_CSR_PARITY_Pos)
|
#define UARTx_CSR_PARITY_NONE (0x0U << UARTx_CSR_PARITY_Pos) /* ÎÞУÑéλ */
|
#define UARTx_CSR_PARITY_EVEN (0x1U << UARTx_CSR_PARITY_Pos) /* żУÑé */
|
#define UARTx_CSR_PARITY_ODD (0x2U << UARTx_CSR_PARITY_Pos) /* ÆæÐ£Ñé */
|
|
#define UARTx_CSR_RXPOL_Pos 3 /* ½ÓÊÕÊý¾Ý¼«ÐÔÅäÖÃ
|
0£ºÕýÏò
|
1£ºÈ¡·´ */
|
#define UARTx_CSR_RXPOL_Msk (0x1U << UARTx_CSR_RXPOL_Pos)
|
#define UARTx_CSR_RXPOL_POSITIVE (0x0U << UARTx_CSR_RXPOL_Pos) /* ÕýÏò */
|
#define UARTx_CSR_RXPOL_NEGTIVE (0x1U << UARTx_CSR_RXPOL_Pos) /* È¡·´ */
|
|
#define UARTx_CSR_TXPOL_Pos 2 /* ·¢ËÍÊý¾Ý¼«ÐÔÅäÖÃ
|
0£ºÕýÏò
|
1£ºÈ¡·´ */
|
#define UARTx_CSR_TXPOL_Msk (0x1U << UARTx_CSR_TXPOL_Pos)
|
#define UARTx_CSR_TXPOL_POSITIVE (0x0U << UARTx_CSR_TXPOL_Pos) /* ÕýÏò */
|
#define UARTx_CSR_TXPOL_NEGTIVE (0x1U << UARTx_CSR_TXPOL_Pos) /* È¡·´ */
|
|
#define UARTx_CSR_RXEN_Pos 1 /* ½ÓÊÕʹÄÜ£¬1ÓÐЧ */
|
#define UARTx_CSR_RXEN_Msk (0x1U << UARTx_CSR_RXEN_Pos)
|
#define UARTx_CSR_RXEN_DISBALE (0x0U << UARTx_CSR_RXEN_Pos)
|
#define UARTx_CSR_RXEN_ENABLE (0x1U << UARTx_CSR_RXEN_Pos)
|
|
#define UARTx_CSR_TXEN_Pos 0 /* ·¢ËÍʹÄÜ£¬1ÓÐЧ */
|
#define UARTx_CSR_TXEN_Msk (0x1U << UARTx_CSR_TXEN_Pos)
|
#define UARTx_CSR_TXEN_DISBALE (0x0U << UARTx_CSR_TXEN_Pos)
|
#define UARTx_CSR_TXEN_ENABLE (0x1U << UARTx_CSR_TXEN_Pos)
|
|
#define UARTx_IER_RXTO_IE_Pos 11 /* ½ÓÊÕ³¬Ê±ÖжÏʹÄÜ£¬1ÓÐЧ
|
£¨½öUART0ºÍUART1ÓÐЧ£© */
|
#define UARTx_IER_RXTO_IE_Msk (0x1U << UARTx_IER_RXTO_IE_Pos)
|
|
#define UARTx_IER_RXERR_IE_Pos 10 /* ½ÓÊÕ´íÎóÖжÏʹÄÜ£¬1ÓÐЧ */
|
#define UARTx_IER_RXERR_IE_Msk (0x1U << UARTx_IER_RXERR_IE_Pos)
|
|
#define UARTx_IER_RXBF_IE_Pos 8 /* ½ÓÊÕ»º´æÂúÖжÏʹÄÜ£¬1ÓÐЧ */
|
#define UARTx_IER_RXBF_IE_Msk (0x1U << UARTx_IER_RXBF_IE_Pos)
|
|
#define UARTx_IER_NEWUP_IE_Pos 7 /* RXϽµÑØÒì²½¼ì²âÖжÏʹÄÜ£¬1ÓÐЧ£¨½öUART0ºÍUART1ÓÐЧ£© */
|
#define UARTx_IER_NEWUP_IE_Msk (0x1U << UARTx_IER_NEWUP_IE_Pos)
|
|
#define UARTx_IER_TXBE_IE_Pos 1 /* ·¢ËÍ»º´æ¿ÕÖжÏʹÄÜ£¬1ÓÐЧ */
|
#define UARTx_IER_TXBE_IE_Msk (0x1U << UARTx_IER_TXBE_IE_Pos)
|
|
#define UARTx_IER_TXSE_IE_Pos 0 /* ·¢ËÍ»º´æ¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжÏʹÄÜ£¬1ÓÐЧ */
|
#define UARTx_IER_TXSE_IE_Msk (0x1U << UARTx_IER_TXSE_IE_Pos)
|
|
#define UARTx_ISR_PERR_Pos 18 /* ÆæÅ¼Ð£Ñé´íÎóÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã */
|
#define UARTx_ISR_PERR_Msk (0x1U << UARTx_ISR_PERR_Pos)
|
|
#define UARTx_ISR_FERR_Pos 17 /* Ö¡¸ñʽ´íÎóÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã */
|
#define UARTx_ISR_FERR_Msk (0x1U << UARTx_ISR_FERR_Pos)
|
|
#define UARTx_ISR_OERR_Pos 16 /* ½ÓÊÕ»º´æÒç³ö´íÎóÖжϱêÖ¾£¬µ±½ÓÊÕ»º´æÂúµÄÇé¿öÏ£¬ÊÕµ½ÐµÄÊý¾ÝʱÖÃλ£»Ó²¼þÖÃ룬Èí¼þд1»òÕß¶ÁÈ¡RXBUFʱÇåÁã
|
½ÓÊÕÒç³öʱ£¬½ÓÊÕ»º³åÆ÷ÖÐÔÓеÄÊý¾Ý±»ÐÂÊý¾Ý¸²¸Ç¡£ */
|
#define UARTx_ISR_OERR_Msk (0x1U << UARTx_ISR_OERR_Pos)
|
|
#define UARTx_ISR_RXTO_Pos 11 /* ½ÓÊÕ³¬Ê±ÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã
|
£¨½öUART0ºÍUART1ÓÐЧ£© */
|
#define UARTx_ISR_RXTO_Msk (0x1U << UARTx_ISR_RXTO_Pos)
|
|
#define UARTx_ISR_RXBF_Pos 8 /* ½ÓÊÕ»º´æÂúÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1»òÕß¶ÁÈ¡RXBUFʱÇåÁã */
|
#define UARTx_ISR_RXBF_Msk (0x1U << UARTx_ISR_RXBF_Pos)
|
|
#define UARTx_ISR_TXBE_Pos 1 /* ·¢ËÍ»º´æ¿ÕÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þдÈëTXBUFʱÇåÁã */
|
#define UARTx_ISR_TXBE_Msk (0x1U << UARTx_ISR_TXBE_Pos)
|
|
#define UARTx_ISR_TXSE_Pos 0 /* ·¢ËÍ»º´æ¿ÕÇÒÒÆÎ»¼Ä´æÆ÷·¢ËÍÍê³ÉÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1»òÕßÈí¼þд·¢ËÍ»º´æÊ±ÇåÁã */
|
#define UARTx_ISR_TXSE_Msk (0x1U << UARTx_ISR_TXSE_Pos)
|
|
#define UARTx_TODR_TXDLY_LEN_Pos 8 /* ·¢ËÍÑÓ³Ù£¬×î´ó255baud */
|
#define UARTx_TODR_TXDLY_LEN_Msk (0xffU << UARTx_TODR_TXDLY_LEN_Pos)
|
|
#define UARTx_TODR_RXTO_LEN_Pos 0 /* ½ÓÊÕ³¬Ê±Òç³ö³¤¶È£¬×î´ó255baud */
|
#define UARTx_TODR_RXTO_LEN_Msk (0xffU << UARTx_TODR_RXTO_LEN_Pos)
|
|
#define UARTx_RXBUF_RXBUF_Pos 0 /* ½ÓÊÕÊý¾Ý»º³å¼Ä´æÆ÷Êý¾Ý */
|
#define UARTx_RXBUF_RXBUF_Msk (0x1ffU << UARTx_RXBUF_RXBUF_Pos)
|
|
#define UARTx_TXBUF_TXBUF_Pos 0 /* ·¢ËÍÊý¾Ý»º³å¼Ä´æÆ÷Êý¾Ý */
|
#define UARTx_TXBUF_TXBUF_Msk (0x1ffU << UARTx_TXBUF_TXBUF_Pos)
|
|
#define UARTx_BRG_SPBRG_Pos 0 /* ²¨ÌØÂʲúÉúÆ÷¼Ä´æÆ÷Öµ */
|
#define UARTx_BRG_SPBRG_Msk (0xffffU << UARTx_BRG_SPBRG_Pos)
|
//Macro_End
|
|
/* Exported functions --------------------------------------------------------*/
|
extern void UART_Deinit(void);
|
|
/* ¿ØÖƺìÍâµ÷ÖÆ·¢ËÍÊý¾ÝʱµÄĬÈÏÊä³ö¼«ÐÔ (Infra Red Flag)
|
0£ºÕý¼«ÐÔ
|
1£º¸º¼«ÐÔ Ïà¹Øº¯Êý */
|
extern void UARTIR_CR_IRFLAG_Set(uint32_t SetValue);
|
extern uint32_t UARTIR_CR_IRFLAG_Get(void);
|
|
/* ºìÍâÕ¼¿Õ±Èµ÷ÖÆ²ÎÊý (Tranmission High Duty) Ïà¹Øº¯Êý */
|
extern void UARTIR_CR_TH_Set(uint32_t SetValue);
|
extern uint32_t UARTIR_CR_TH_Get(void);
|
|
/* ºìÍâµ÷ÖÆÆµÂÊ (Transmission Baud Rate) Ïà¹Øº¯Êý */
|
extern void UARTIR_CR_TZBRG_Set(uint32_t SetValue);
|
extern uint32_t UARTIR_CR_TZBRG_Get(void);
|
extern void UARTx_Deinit(UART_Type* UARTx);
|
|
/* UARTͨÐűêÖ¾£¬Ö»¶Á
|
1£ºUARTÕýÔÚͨÐÅÖÐ
|
0£ºUART¿ÕÏÐ Ïà¹Øº¯Êý */
|
extern FlagStatus UARTx_CSR_BUSY_Chk(UART_Type* UARTx);
|
|
/* ·¢ËͺìÍâµ÷ÖÆÊ¹ÄÜ
|
1£ºÊ¹ÄܺìÍâµ÷ÖÆ·¢ËÍ
|
0£º¹Ø±ÕºìÍâµ÷ÖÆ·¢ËÍ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_TXIREN_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_CSR_TXIREN_Getable(UART_Type* UARTx);
|
|
/* ½ÓÊÕ³¬Ê±Ê¹ÄÜ
|
1£ºÊ¹ÄܽÓÊÕ³¬Ê±¹¦ÄÜ
|
0£º¹Ø±Õ½ÓÊÕ³¬Ê±¹¦ÄÜ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_RXTOEN_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_CSR_RXTOEN_Getable(UART_Type* UARTx);
|
|
/* RXºÍTXÒý½Å½»»»
|
0£ºÄ¬ÈÏÒý½Å˳Ðò£¨Óë·âװͼһÖ£©
|
1£º½»»»Òý½Å˳Ðò Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_IOSWAP_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_CSR_IOSWAP_Get(UART_Type* UARTx);
|
|
/* DMA·¢ËÍÍê³ÉÖжÏʹÄÜ£¬½öÔÚUARTͨ¹ýDMA½øÐз¢ËÍʱÓÐЧ
|
1£ºIE=1µÄÇé¿öÏ£¬DMAģʽÏ·¢ËÍÍê×îºóÒ»Ö¡ºó£¬ÔÊÐíÖжÏÐźÅÊä³ö£»×îºóһ֮֡ǰµÄÊý¾ÝÖ¡·¢ËÍÍê³Éºó²»ÔÊÐíÖжÏÐźÅÊä³ö
|
0£ºÊÇ·ñÔÊÐíÖжÏÐźÅÊä³ö½öÓÉIE¾ö¶¨ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_DMATXIFCFG_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_CSR_DMATXIFCFG_Getable(UART_Type* UARTx);
|
|
/* Êý¾Ý·¢ËÍ/½ÓÊÕʱµÄλ˳Ðò
|
0£ºLSB first
|
1£ºMSB first Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_BITORD_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_CSR_BITORD_Get(UART_Type* UARTx);
|
|
/* ֹͣλ¿í¶ÈÅäÖ㬽ö¶Ô·¢ËÍÖ¡¸ñʽÓÐЧ£¬½ÓÊÕʱ²»ÅжÏֹͣλ¸öÊý
|
0£º1λֹͣλ
|
1£º2λֹͣλ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_STOPCFG_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_CSR_STOPCFG_Get(UART_Type* UARTx);
|
|
/* ÿ֡µÄÊý¾Ý³¤¶ÈÑ¡Ôñ£»´Ë¼Ä´æÆ÷¶ÔÊý¾Ý·¢ËͺͽÓÊÕͬʱÓÐЧ
|
00£º7λÊý¾Ý
|
01£º8λÊý¾Ý
|
10£º9λÊý¾Ý
|
11£º6λÊý¾Ý Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_PDSEL_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_CSR_PDSEL_Get(UART_Type* UARTx);
|
|
/* УÑéλÅäÖ㻴˼ĴæÆ÷¶ÔÊý¾Ý·¢ËͺͽÓÊÕͬʱÓÐЧ
|
00£ºÎÞУÑéλ
|
01£ºÅ¼Ð£Ñé
|
10£ºÆæÐ£Ñé
|
11£ºRFU Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_PARITY_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_CSR_PARITY_Get(UART_Type* UARTx);
|
|
/* ½ÓÊÕÊý¾Ý¼«ÐÔÅäÖÃ
|
0£ºÕýÏò
|
1£ºÈ¡·´ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_RXPOL_Setable(UART_Type* UARTx,FunState NewState);
|
extern FunState UARTx_CSR_RXPOL_Getable(UART_Type* UARTx);
|
|
/* ·¢ËÍÊý¾Ý¼«ÐÔÅäÖÃ
|
0£ºÕýÏò
|
1£ºÈ¡·´ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_TXPOL_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_CSR_TXPOL_Getable(UART_Type* UARTx);
|
|
/* ½ÓÊÕʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_RXEN_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_CSR_RXEN_Getable(UART_Type* UARTx);
|
|
/* ·¢ËÍʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */
|
extern void UARTx_CSR_TXEN_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_CSR_TXEN_Getable(UART_Type* UARTx);
|
|
/* ½ÓÊÕ³¬Ê±ÖжÏʹÄÜ£¬1ÓÐЧ
|
£¨½öUART0ºÍUART1ÓÐЧ£© Ïà¹Øº¯Êý */
|
extern void UARTx_IER_RXTO_IE_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_IER_RXTO_IE_Getable(UART_Type* UARTx);
|
|
/* ½ÓÊÕ´íÎóÖжÏʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */
|
extern void UARTx_IER_RXERR_IE_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_IER_RXERR_IE_Getable(UART_Type* UARTx);
|
|
/* ½ÓÊÕ»º´æÂúÖжÏʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */
|
extern void UARTx_IER_RXBF_IE_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_IER_RXBF_IE_Getable(UART_Type* UARTx);
|
|
/* RXϽµÑØÒì²½¼ì²âÖжÏʹÄÜ£¬1ÓÐЧ£¨½öUART0ºÍUART1ÓÐЧ£© Ïà¹Øº¯Êý */
|
extern void UARTx_IER_NEWUP_IE_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_IER_NEWUP_IE_Getable(UART_Type* UARTx);
|
|
/* ·¢ËÍ»º´æ¿ÕÖжÏʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */
|
extern void UARTx_IER_TXBE_IE_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_IER_TXBE_IE_Getable(UART_Type* UARTx);
|
|
/* ·¢ËÍ»º´æ¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжÏʹÄÜ£¬1ÓÐЧ Ïà¹Øº¯Êý */
|
extern void UARTx_IER_TXSE_IE_Setable(UART_Type* UARTx, FunState NewState);
|
extern FunState UARTx_IER_TXSE_IE_Getable(UART_Type* UARTx);
|
|
/* ÆæÅ¼Ð£Ñé´íÎóÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_PERR_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_PERR_Chk(UART_Type* UARTx);
|
|
/* Ö¡¸ñʽ´íÎóÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_FERR_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_FERR_Chk(UART_Type* UARTx);
|
|
/* ½ÓÊÕ»º´æÒç³ö´íÎóÖжϱêÖ¾£¬µ±½ÓÊÕ»º´æÂúµÄÇé¿öÏ£¬ÊÕµ½ÐµÄÊý¾ÝʱÖÃλ£»Ó²¼þÖÃ룬Èí¼þд1»òÕß¶ÁÈ¡RXBUFʱÇåÁã
|
½ÓÊÕÒç³öʱ£¬½ÓÊÕ»º³åÆ÷ÖÐÔÓеÄÊý¾Ý±»ÐÂÊý¾Ý¸²¸Ç¡£ Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_OERR_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_OERR_Chk(UART_Type* UARTx);
|
|
/* ½ÓÊÕ³¬Ê±ÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã
|
£¨½öUART0ºÍUART1ÓÐЧ£© Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_RXTO_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_RXTO_Chk(UART_Type* UARTx);
|
|
/* ½ÓÊÕ»º´æÂúÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1»òÕß¶ÁÈ¡RXBUFʱÇåÁã Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_RXBF_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_RXBF_Chk(UART_Type* UARTx);
|
|
/* RXϽµÑØÒì²½¼ì²âÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1ÇåÁã
|
£¨½öUART0ºÍUART1ÓÐЧ£© Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_NEWKF_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_NEWKF_Chk(UART_Type* UARTx);
|
|
/* ·¢ËÍ»º´æ¿ÕÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þдÈëTXBUFʱÇåÁã Ïà¹Øº¯Êý */
|
extern FlagStatus UARTx_ISR_TXBE_Chk(UART_Type* UARTx);
|
|
/* ·¢ËÍ»º´æ¿ÕÇÒÒÆÎ»¼Ä´æÆ÷·¢ËÍÍê³ÉÖжϱêÖ¾£¬Ó²¼þÖÃ룬Èí¼þд1»òÕßÈí¼þд·¢ËÍ»º´æÊ±ÇåÁã Ïà¹Øº¯Êý */
|
extern void UARTx_ISR_TXSE_Clr(UART_Type* UARTx);
|
extern FlagStatus UARTx_ISR_TXSE_Chk(UART_Type* UARTx);
|
|
/* ·¢ËÍÑÓ³Ù£¬×î´ó255baud Ïà¹Øº¯Êý */
|
extern void UARTx_TODR_TXDLY_LEN_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_TODR_TXDLY_LEN_Get(UART_Type* UARTx);
|
|
/* ½ÓÊÕ³¬Ê±Òç³ö³¤¶È£¬×î´ó255baud Ïà¹Øº¯Êý */
|
extern void UARTx_TODR_RXTO_LEN_Set(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_TODR_RXTO_LEN_Get(UART_Type* UARTx);
|
|
/* ½ÓÊÕÊý¾Ý»º³å¼Ä´æÆ÷Êý¾Ý Ïà¹Øº¯Êý */
|
extern uint32_t UARTx_RXBUF_Read(UART_Type* UARTx);
|
|
/* ·¢ËÍÊý¾Ý»º³å¼Ä´æÆ÷Êý¾Ý Ïà¹Øº¯Êý */
|
extern void UARTx_TXBUF_Write(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_TXBUF_Read(UART_Type* UARTx);
|
|
/* ²¨ÌØÂʲúÉúÆ÷¼Ä´æÆ÷Öµ Ïà¹Øº¯Êý */
|
extern void UARTx_BGR_Write(UART_Type* UARTx, uint32_t SetValue);
|
extern uint32_t UARTx_BGR_Read(UART_Type* UARTx);
|
|
extern uint32_t UART_BaudREGCalc(uint32_t BaudRate, uint32_t Clk);
|
extern void UART_IRModulation_Init( uint32_t ModuFreq, uint8_t ModuDutyCycle, uint32_t Clk );
|
extern void UART_Init(UART_Type* UARTx, UART_InitTypeDef* para);
|
extern void UART_SInit(UART_Type* UARTx, UART_SInitTypeDef* para,CMU_ClocksType* CMU_Clocks);
|
|
//Announce_End
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /*__FM33A0XXEV_UART_H */
|