/** ****************************************************************************** * @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 */