123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444 |
- #ifndef __STM8S_UART4_H
- #define __STM8S_UART4_H
- #include "stm8s.h"
- typedef enum { UART4_IRDAMODE_NORMAL = (uint8_t)0x00,
- UART4_IRDAMODE_LOWPOWER = (uint8_t)0x01
- } UART4_IrDAMode_TypeDef;
- typedef enum { UART4_WAKEUP_IDLELINE = (uint8_t)0x00,
- UART4_WAKEUP_ADDRESSMARK = (uint8_t)0x08
- } UART4_WakeUp_TypeDef;
- typedef enum { UART4_LINBREAKDETECTIONLENGTH_10BITS = (uint8_t)0x00,
- UART4_LINBREAKDETECTIONLENGTH_11BITS = (uint8_t)0x01
- } UART4_LINBreakDetectionLength_TypeDef;
- typedef enum { UART4_STOPBITS_1 = (uint8_t)0x00,
- UART4_STOPBITS_0_5 = (uint8_t)0x10,
- UART4_STOPBITS_2 = (uint8_t)0x20,
- UART4_STOPBITS_1_5 = (uint8_t)0x30
- } UART4_StopBits_TypeDef;
- typedef enum { UART4_PARITY_NO = (uint8_t)0x00,
- UART4_PARITY_EVEN = (uint8_t)0x04,
- UART4_PARITY_ODD = (uint8_t)0x06
- } UART4_Parity_TypeDef;
- typedef enum { UART4_LIN_MODE_MASTER = (uint8_t)0x00,
- UART4_LIN_MODE_SLAVE = (uint8_t)0x01
- } UART4_LinMode_TypeDef;
- typedef enum { UART4_LIN_AUTOSYNC_DISABLE = (uint8_t)0x00,
- UART4_LIN_AUTOSYNC_ENABLE = (uint8_t)0x01
- } UART4_LinAutosync_TypeDef;
- typedef enum { UART4_LIN_DIVUP_LBRR1 = (uint8_t)0x00,
- UART4_LIN_DIVUP_NEXTRXNE = (uint8_t)0x01
- } UART4_LinDivUp_TypeDef;
- typedef enum { UART4_SYNCMODE_CLOCK_DISABLE = (uint8_t)0x80,
- UART4_SYNCMODE_CLOCK_ENABLE = (uint8_t)0x08,
- UART4_SYNCMODE_CPOL_LOW = (uint8_t)0x40,
- UART4_SYNCMODE_CPOL_HIGH = (uint8_t)0x04,
- UART4_SYNCMODE_CPHA_MIDDLE = (uint8_t)0x20,
- UART4_SYNCMODE_CPHA_BEGINING = (uint8_t)0x02,
- UART4_SYNCMODE_LASTBIT_DISABLE = (uint8_t)0x10,
- UART4_SYNCMODE_LASTBIT_ENABLE = (uint8_t)0x01
- } UART4_SyncMode_TypeDef;
- typedef enum { UART4_WORDLENGTH_8D = (uint8_t)0x00,
- UART4_WORDLENGTH_9D = (uint8_t)0x10
- } UART4_WordLength_TypeDef;
- typedef enum { UART4_MODE_RX_ENABLE = (uint8_t)0x08,
- UART4_MODE_TX_ENABLE = (uint8_t)0x04,
- UART4_MODE_TX_DISABLE = (uint8_t)0x80,
- UART4_MODE_RX_DISABLE = (uint8_t)0x40,
- UART4_MODE_TXRX_ENABLE = (uint8_t)0x0C
- } UART4_Mode_TypeDef;
- typedef enum
- {
- UART4_FLAG_TXE = (uint16_t)0x0080,
- UART4_FLAG_TC = (uint16_t)0x0040,
- UART4_FLAG_RXNE = (uint16_t)0x0020,
- UART4_FLAG_IDLE = (uint16_t)0x0010,
- UART4_FLAG_OR_LHE = (uint16_t)0x0008,
- UART4_FLAG_NF = (uint16_t)0x0004,
- UART4_FLAG_FE = (uint16_t)0x0002,
- UART4_FLAG_PE = (uint16_t)0x0001,
- UART4_FLAG_SBK = (uint16_t)0x0101,
- UART4_FLAG_LBDF = (uint16_t)0x0210,
- UART4_FLAG_LHDF = (uint16_t)0x0302,
- UART4_FLAG_LSF = (uint16_t)0x0301
- } UART4_Flag_TypeDef;
- typedef enum { UART4_IT_TXE = (uint16_t)0x0277,
- UART4_IT_TC = (uint16_t)0x0266,
- UART4_IT_RXNE = (uint16_t)0x0255,
- UART4_IT_IDLE = (uint16_t)0x0244,
- UART4_IT_OR = (uint16_t)0x0235,
- UART4_IT_PE = (uint16_t)0x0100,
- UART4_IT_LBDF = (uint16_t)0x0346,
- UART4_IT_LHDF = (uint16_t)0x0412,
- UART4_IT_RXNE_OR = (uint16_t)0x0205
- } UART4_IT_TypeDef;
-
- #define IS_UART4_MODE_OK(Mode) \
- (((Mode) == (uint8_t)UART4_MODE_RX_ENABLE) || \
- ((Mode) == (uint8_t)UART4_MODE_RX_DISABLE) || \
- ((Mode) == (uint8_t)UART4_MODE_TX_ENABLE) || \
- ((Mode) == (uint8_t)UART4_MODE_TX_DISABLE) || \
- ((Mode) == (uint8_t)UART4_MODE_TXRX_ENABLE) || \
- ((Mode) == (uint8_t)((uint8_t)UART4_MODE_TX_ENABLE|(uint8_t)UART4_MODE_RX_ENABLE)) || \
- ((Mode) == (uint8_t)((uint8_t)UART4_MODE_TX_ENABLE|(uint8_t)UART4_MODE_RX_DISABLE)) || \
- ((Mode) == (uint8_t)((uint8_t)UART4_MODE_TX_DISABLE|(uint8_t)UART4_MODE_RX_DISABLE)) || \
- ((Mode) == (uint8_t)((uint8_t)UART4_MODE_TX_DISABLE|(uint8_t)UART4_MODE_RX_ENABLE)))
- #define IS_UART4_WORDLENGTH_OK(WordLength) \
- (((WordLength) == UART4_WORDLENGTH_8D) || \
- ((WordLength) == UART4_WORDLENGTH_9D))
- #define IS_UART4_SYNCMODE_OK(SyncMode) \
- (!((((SyncMode)&(((uint8_t)UART4_SYNCMODE_CLOCK_ENABLE)|((uint8_t)UART4_SYNCMODE_CLOCK_DISABLE))) == (((uint8_t)UART4_SYNCMODE_CLOCK_ENABLE)|((uint8_t)UART4_SYNCMODE_CLOCK_DISABLE))) || \
- (((SyncMode)&(((uint8_t)UART4_SYNCMODE_CPOL_LOW )|((uint8_t)UART4_SYNCMODE_CPOL_HIGH))) == (((uint8_t)UART4_SYNCMODE_CPOL_LOW )|((uint8_t)UART4_SYNCMODE_CPOL_HIGH))) || \
- (((SyncMode)&(((uint8_t)UART4_SYNCMODE_CPHA_MIDDLE)|((uint8_t)UART4_SYNCMODE_CPHA_BEGINING))) == (((uint8_t)UART4_SYNCMODE_CPHA_MIDDLE)|((uint8_t)UART4_SYNCMODE_CPHA_BEGINING))) || \
- (((SyncMode)&(((uint8_t)UART4_SYNCMODE_LASTBIT_DISABLE)|((uint8_t)UART4_SYNCMODE_LASTBIT_ENABLE))) == (((uint8_t)UART4_SYNCMODE_LASTBIT_DISABLE)|((uint8_t)UART4_SYNCMODE_LASTBIT_ENABLE)))))
- #define IS_UART4_FLAG_OK(Flag) \
- (((Flag) == UART4_FLAG_TXE) || \
- ((Flag) == UART4_FLAG_TC) || \
- ((Flag) == UART4_FLAG_RXNE) || \
- ((Flag) == UART4_FLAG_IDLE) || \
- ((Flag) == UART4_FLAG_OR_LHE) || \
- ((Flag) == UART4_FLAG_NF) || \
- ((Flag) == UART4_FLAG_FE) || \
- ((Flag) == UART4_FLAG_PE) || \
- ((Flag) == UART4_FLAG_SBK) || \
- ((Flag) == UART4_FLAG_LSF) || \
- ((Flag) == UART4_FLAG_LHDF) || \
- ((Flag) == UART4_FLAG_LBDF))
- #define IS_UART4_CLEAR_FLAG_OK(Flag) \
- (((Flag) == UART4_FLAG_RXNE) || \
- ((Flag) == UART4_FLAG_LHDF) || \
- ((Flag) == UART4_FLAG_LSF) || \
- ((Flag) == UART4_FLAG_LBDF))
- #define IS_UART4_CONFIG_IT_OK(Interrupt) \
- (((Interrupt) == UART4_IT_PE) || \
- ((Interrupt) == UART4_IT_TXE) || \
- ((Interrupt) == UART4_IT_TC) || \
- ((Interrupt) == UART4_IT_RXNE_OR ) || \
- ((Interrupt) == UART4_IT_IDLE) || \
- ((Interrupt) == UART4_IT_LHDF) || \
- ((Interrupt) == UART4_IT_LBDF))
- #define IS_UART4_GET_IT_OK(ITPendingBit) \
- (((ITPendingBit) == UART4_IT_TXE) || \
- ((ITPendingBit) == UART4_IT_TC) || \
- ((ITPendingBit) == UART4_IT_RXNE) || \
- ((ITPendingBit) == UART4_IT_IDLE) || \
- ((ITPendingBit) == UART4_IT_OR) || \
- ((ITPendingBit) == UART4_IT_LBDF) || \
- ((ITPendingBit) == UART4_IT_LHDF) || \
- ((ITPendingBit) == UART4_IT_PE))
- #define IS_UART4_CLEAR_IT_OK(ITPendingBit) \
- (((ITPendingBit) == UART4_IT_RXNE) || \
- ((ITPendingBit) == UART4_IT_LHDF) || \
- ((ITPendingBit) == UART4_IT_LBDF))
- #define IS_UART4_IRDAMODE_OK(IrDAMode) \
- (((IrDAMode) == UART4_IRDAMODE_LOWPOWER) || \
- ((IrDAMode) == UART4_IRDAMODE_NORMAL))
- #define IS_UART4_WAKEUP_OK(WakeUp) \
- (((WakeUp) == UART4_WAKEUP_IDLELINE) || \
- ((WakeUp) == UART4_WAKEUP_ADDRESSMARK))
- #define IS_UART4_LINBREAKDETECTIONLENGTH_OK(LINBreakDetectionLength) \
- (((LINBreakDetectionLength) == UART4_LINBREAKDETECTIONLENGTH_10BITS) || \
- ((LINBreakDetectionLength) == UART4_LINBREAKDETECTIONLENGTH_11BITS))
- #define IS_UART4_STOPBITS_OK(StopBit) (((StopBit) == UART4_STOPBITS_1) || \
- ((StopBit) == UART4_STOPBITS_0_5) || \
- ((StopBit) == UART4_STOPBITS_2) || \
- ((StopBit) == UART4_STOPBITS_1_5 ))
- #define IS_UART4_PARITY_OK(Parity) (((Parity) == UART4_PARITY_NO) || \
- ((Parity) == UART4_PARITY_EVEN) || \
- ((Parity) == UART4_PARITY_ODD ))
- #define IS_UART4_BAUDRATE_OK(NUM) ((NUM) <= (uint32_t)625000)
- #define UART4_ADDRESS_MAX ((uint8_t)16)
- #define IS_UART4_ADDRESS_OK(node) ((node) < UART4_ADDRESS_MAX )
- #define IS_UART4_SLAVE_OK(Mode) \
- (((Mode) == UART4_LIN_MODE_MASTER) || \
- ((Mode) == UART4_LIN_MODE_SLAVE))
- #define IS_UART4_AUTOSYNC_OK(AutosyncMode) \
- (((AutosyncMode) == UART4_LIN_AUTOSYNC_ENABLE) || \
- ((AutosyncMode) == UART4_LIN_AUTOSYNC_DISABLE))
- #define IS_UART4_DIVUP_OK(DivupMethod) \
- (((DivupMethod) == UART4_LIN_DIVUP_LBRR1) || \
- ((DivupMethod) == UART4_LIN_DIVUP_NEXTRXNE))
- void UART4_DeInit(void);
- void UART4_Init(uint32_t BaudRate, UART4_WordLength_TypeDef WordLength,
- UART4_StopBits_TypeDef StopBits, UART4_Parity_TypeDef Parity,
- UART4_SyncMode_TypeDef SyncMode, UART4_Mode_TypeDef Mode);
- void UART4_Cmd(FunctionalState NewState);
- void UART4_ITConfig(UART4_IT_TypeDef UART4_IT, FunctionalState NewState);
- void UART4_HalfDuplexCmd(FunctionalState NewState);
- void UART4_IrDAConfig(UART4_IrDAMode_TypeDef UART4_IrDAMode);
- void UART4_IrDACmd(FunctionalState NewState);
- void UART4_LINBreakDetectionConfig(UART4_LINBreakDetectionLength_TypeDef UART4_LINBreakDetectionLength);
- void UART4_LINConfig(UART4_LinMode_TypeDef UART4_Mode,
- UART4_LinAutosync_TypeDef UART4_Autosync,
- UART4_LinDivUp_TypeDef UART4_DivUp);
- void UART4_LINCmd(FunctionalState NewState);
- void UART4_SmartCardCmd(FunctionalState NewState);
- void UART4_SmartCardNACKCmd(FunctionalState NewState);
- void UART4_WakeUpConfig(UART4_WakeUp_TypeDef UART4_WakeUp);
- void UART4_ReceiverWakeUpCmd(FunctionalState NewState);
- uint8_t UART4_ReceiveData8(void);
- uint16_t UART4_ReceiveData9(void);
- void UART4_SendData8(uint8_t Data);
- void UART4_SendData9(uint16_t Data);
- void UART4_SendBreak(void);
- void UART4_SetAddress(uint8_t UART4_Address);
- void UART4_SetGuardTime(uint8_t UART4_GuardTime);
- void UART4_SetPrescaler(uint8_t UART4_Prescaler);
- FlagStatus UART4_GetFlagStatus(UART4_Flag_TypeDef UART4_FLAG);
- void UART4_ClearFlag(UART4_Flag_TypeDef UART4_FLAG);
- ITStatus UART4_GetITStatus(UART4_IT_TypeDef UART4_IT);
- void UART4_ClearITPendingBit(UART4_IT_TypeDef UART4_IT);
- #endif
-
|