⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lld_uart.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/*______________________________________________________________________| FILE:         lld_uart.h| PROJECT:      OS20_ACCORDO+| SW-COMPONENT: |_______________________________________________________________________| DESCRIPTION:  uart function|_______________________________________________________________________| COPYRIGHT:    (c) 2005 STMicroelectronics, Arzano (ITALY)| HISTORY:| Date      | Modification               | Author|_______________________________________________________________________| 05.10.28  | Initial revision           | M. De Martino|______________________________________________________________________*/#ifndef _LLD_UART_H_#define _LLD_UART_H_#include "types.h"#include "rccu_run.h"#ifdef __cplusplusextern "C" {#endif/************************************************************************|defines and macros|-----------------------------------------------------------------------*/#define COM_BUFFERSIZE               ((tS32)1024)#define UART_BAUD_4800               ((tS32)4800)#define UART_BAUD_9600               ((tS32)9600)#define UART_BAUD_19200              ((tS32)19200)#define UART_BAUD_38400              ((tS32)38400)#define UART_BAUD_57600              ((tS32)57600)#define UART_BAUD_115200             ((tS32)115200)#define UART_BAUD_XCLK               ((tS32)0)/************************************************************************|types|-----------------------------------------------------------------------*//* Uart identificator */typedef enum{   UART_EN_0,   UART_EN_1}UART_tenId;typedef enum{   UART_EN_OFF,   UART_EN_ON,   UART_EN_CURRENT}UART_tenSwitch;/* Stop bits allowed by UART peripheral */typedef enum{   UART_EN_HALF_STOP_BITS     =  0,   UART_EN_ONE_STOP_BITS      =  1,   UART_EN_ONE_HALF_STOP_BITS =  2,   UART_EN_TWO_STOP_BITS      =  3}UART_tenStopBits;/* Data format allowed by UART peripheral */typedef enum{   UART_EN_EIGHT_BITS        =  1,   UART_EN_SEVEN_BITS_PA     =  3,   UART_EN_NINE_BITS         =  4,   UART_EN_EIGHT_BITS_WA     =  5,   UART_EN_EIGHT_BITS_PA     =  7}UART_tenMode;/* Interrupt types generated by UART peripheral */typedef enum{   UART_EN_RX_BUFF_FULL		 = 0x0001,   UART_EN_TX_EMPTY			 = 0x0002,   UART_EN_TX_HALF_EMPTY  	 = 0x0004,   UART_EN_PARITY_ERROR		 = 0x0008,   UART_EN_FRAME_ERROR		 = 0x0010,   UART_EN_OVERRUN_ERROR	 = 0x0020,   UART_EN_TIMEOUT_NOT_EMPTY = 0x0040,   UART_EN_TIMEOUT_IDLE		 = 0x0080,   UART_EN_RX_HALF_FULL		 = 0x0100}UART_tenInterrupt;/* Parity settings */typedef enum{   UART_EN_NONE,   UART_EN_ODD,   UART_EN_EVEN}UART_tenParity;/* LLD resource internal status */typedef enum{   UART_EN_UNKNOWN,   UART_EN_IDLE,   UART_EN_BUSY}UART_tenStatus;/* HISR activation */typedef enum{   UART_EN_TX_HISR,   UART_EN_RX_HISR}UART_tenHisr;/************************************************************************|typedefs (scope: module-local)|-----------------------------------------------------------------------*//************************************************************************|function prototype (scope: global)|-----------------------------------------------------------------------*//* Hw abstraction layer interface */extern tVoid LLD_UART_vConfigUart(tVoid);extern tVoid LLD_UART_vInitUart(UART_tenId 			enId,                         		tS8       			*ps8wrBuff,                        		tU32       			u32wrBuffSize,                        		tS8       			*ps8rdBuff,                         		tU32       			u32rdBuffSize,                         		tS32				baudRate,                         		UART_tenStopBits 	stopBits,                         		UART_tenMode		mode,                         		UART_tenParity 		parity);extern tVoid LLD_UART_vStopUartRxTx(UART_tenId enId);extern tVoid LLD_UART_vTxReset(UART_tenId enId);extern tVoid LLD_UART_vRxReset(UART_tenId enId);extern tVoid LLD_UART_vWriteTxBuffer(UART_tenId enId, tSChar s8Data);extern tS8   LLD_UART_s8ReadRxBuffer(UART_tenId enId);extern UART_tenSwitch LLD_UART_enSetFifoEnable(UART_tenId enId, UART_tenSwitch enVal);extern UART_tenSwitch LLD_UART_enSetRxEnable(UART_tenId enId, UART_tenSwitch enVal);extern UART_tenSwitch LLD_UART_enSetRun(UART_tenId enId, UART_tenSwitch enVal);//extern UART_tenSwitch LLD_UART_enSetLoopBack(UART_tenId enId, UART_tenSwitch enVal);extern tVoid LLD_UART_vSetParity(UART_tenId enId, UART_tenParity enVal);extern tVoid LLD_UART_vSetStopBits(UART_tenId enId, UART_tenStopBits enStopBits);extern tVoid LLD_UART_vSetMode(UART_tenId enId, UART_tenMode enMode);extern tVoid LLD_UART_vSetBaudRate(UART_tenId enId, const tS32 s32Baudrate);extern tVoid LLD_UART_SetTimeOut(UART_tenId enId, tU16 u16TimeOut);extern tVoid LLD_UART_vSetIntEnable(UART_tenId enId, UART_tenSwitch enVal, UART_tenInterrupt enIntr);extern tBool LLD_UART_bTxEmpty(UART_tenId enId);extern tBool LLD_UART_bHwFifoTxEmpty(UART_tenId enId);extern tBool LLD_UART_bRxFull(UART_tenId enId);extern tU32 LLD_UART_u32Write(UART_tenId enId, tS8 *ps8Buffer, tU32 u32nbytes);extern tU32 LLD_UART_u32Read(UART_tenId enId, tS8 *ps8Buffer, tU32 u32nbytes);extern tU32 LLD_UART_u32ReadBytes(UART_tenId enId);/* Comunication interface */extern UART_tenStatus   LLD_UART_enGetTxStatus(UART_tenId enId);extern UART_tenStatus   LLD_UART_enGetRxStatus(UART_tenId enId);extern tVoid            LLD_UART_vSetTxStatus(UART_tenId enId, UART_tenStatus enStatus);extern tVoid            LLD_UART_vSetRxStatus(UART_tenId enId, UART_tenStatus enStatus);/* Interrupt manager */extern tVoid INT_vUart0IntrMngr(tVoid);extern tVoid INT_vUart1IntrMngr(tVoid);/* Al: custom interrupt handler*/#define	DEFAULT_UART_MGR &INT_vUart_Default_manager#define	INSTALL_UART_MANAGER(uart, handler)	LLD_UART_isrMgrUart##uart = handler#define	RESTORE_UART_MANAGER(uart)	LLD_UART_isrMgrUart##uart = DEFAULT_UART_MGRextern tVoid LLD_UART_InstallHookManager (tU8, tVoid (*fnct)(tU8));extern tVoid LLD_UART_RestoreHookManager(tU8);/* Setup uart */extern tVoid LLD_UART_Setup (tVoid);/* Al */#ifdef __cplusplus}#endif#endif/* End of file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -