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

📄 xsuartdrv.h

📁 usb 检验程序
💻 H
字号:
#ifndef __XSUART_DRV_H
#define __XSUART_DRV_H

#include "XsUartRegs.h"

/* Baud rate definition */
#define BAUD_RATE_4800		4800	
#define BAUD_RATE_9600		9600	
#define BAUD_RATE_19200		19200	
#define BAUD_RATE_38400		38400	
#define BAUD_RATE_57600		57600	
#define BAUD_RATE_115200	115200	
#define BAUD_RATE_230400	230400
#define BAUD_RATE_460800	460800
#define BAUD_RATE_960800	960800
#define BAUD_RATE_DEFAULT	BAUD_RATE_115200

typedef enum UartParityE
{ 
    UART_NOPARITY,
    UART_PARITY
}UartParityT;

typedef enum UartStopBitE
{
    UART_ONESTOPBIT,
    UART_TWOSTOPBITS
}UartStopBitT;

typedef enum UartBitsE
{   
    UART_5BITS,
    UART_6BITS,
    UART_7BITS,
    UART_8BITS
}UartBitsT;

typedef enum UartFlowControlE
{   
    UART_XON_OFF,
    UART_HARDWARE,
    UART_FLOWCTRL_NONE
}UartFlowControlT;

typedef enum UartDeviceE
{   
    UART_FF = 0,
    UART_BT = 1,
    UART_STD = 2,
    UART_IRDA = 3
}UartDeviceT;

void XsUartDrv_Init(volatile UartRegsT *pUart, UartDeviceT Device, unsigned int Baudrate, UartBitsT Bits, UartParityT Parity, UartStopBitT Stop, UartFlowControlT FlowCtrl);
#define XsUartDrv_InitDefault(pUart, Device)	\
	XsUartDrv_Init((volatile UartRegsT *)pUart, Device, BAUD_RATE_DEFAULT, UART_8BITS, UART_NOPARITY, UART_ONESTOPBIT, UART_FLOWCTRL_NONE)

//set default UART device for xxxDef function
void XsUartDrv_SetDefaultUartDevice(UartDeviceT Device);

//send a char via UART
void XsUartDrv_SendChar(volatile UartRegsT *pUart, char *pch);
void XsUartDrv_SendCharDef(char *pch);	//using default Uart Device
#define XsUartDrv_SendCharFF(pch) XsUartDrv_SendChar((volatile UartRegsT *)FFUARTREG_PHY_BASE_ADDR, (char *)pch)
#define XsUartDrv_SendCharBT(pch) XsUartDrv_SendChar((volatile UartRegsT *)BTUARTREG_PHY_BASE_ADDR, (char *)pch)
#define XsUartDrv_SendCharST(pch) XsUartDrv_SendChar((volatile UartRegsT *)STUARTREG_PHY_BASE_ADDR, (char *)pch)

void XsUartDrv_SendChar_Phy(char *pch);

//send data string via UART
void XsUartDrv_SendData(volatile UartRegsT *pUart, char *pBuf, int len);
void XsUartDrv_SendDataDef(char *pBuf, int len);	//using default Uart Device
#define XsUartDrv_SendDataFF(pBuf, len) \
	XsUartDrv_SendData((volatile UartRegsT *)FFUARTREG_PHY_BASE_ADDR, (char *)pBuf, (int)len)
#define XsUartDrv_SendDataBT(pBuf, len) \
	XsUartDrv_SendData((volatile UartRegsT *)BTUARTREG_PHY_BASE_ADDR, (char *)pBuf, (int)len)
#define XsUartDrv_SendDataST(pBuf, len) \
	XsUartDrv_SendData((volatile UartRegsT *)STUARTREG_PHY_BASE_ADDR, (char *)pBuf, (int)len)

//send a '\0' terminated string via UART
void XsUartDrv_SendStrZ(volatile UartRegsT *pUart, char *pBuf);
void XsUartDrv_SendStrZDef(char *pBuf);	//using default Uart Device
#define XsUartDrv_SendStrZFF(pBuf) \
	XsUartDrv_SendStrZ((volatile UartRegsT *)FFUARTREG_PHY_BASE_ADDR, (char *)pBuf);
#define XsUartDrv_SendStrZBT(pBuf) \
	XsUartDrv_SendStrZ((volatile UartRegsT *)BTUARTREG_PHY_BASE_ADDR, (char *)pBuf);
#define XsUartDrv_SendStrZST(pBuf) \
	XsUartDrv_SendStrZ((volatile UartRegsT *)STUARTREG_PHY_BASE_ADDR, (char *)pBuf);

//receive data in polling mode, if no user input, the macro function will never return
int XsUartDrv_ReadUart(volatile UartRegsT *pUart, char * rxbufP, unsigned int len, unsigned int timeout);
int XsUartDrv_ReadUartDef(char * rxbufP, unsigned int len, unsigned int timeout);	//using default Uart Device

#define XsUartDrv_ReadUartFF(rxbufP, len, TimeoutInUs)\
	XsUartDrv_ReadUart((volatile UartRegsT *)FFUARTREG_PHY_BASE_ADDR, (char *)rxbufP, (unsigned int)len, TimeoutInUs)
#define XsUartDrv_ReadUartBT(rxbufP, len, TimeoutInUs)\
	XsUartDrv_ReadUart((volatile UartRegsT *)BTUARTREG_PHY_BASE_ADDR, (char *)rxbufP, (unsigned int)len, TimeoutInUs)
#define XsUartDrv_ReadUartST(rxbufP, len, TimeoutInUs)\
	XsUartDrv_ReadUart((volatile UartRegsT *)STUARTREG_PHY_BASE_ADDR, (char *)rxbufP, (unsigned int)len, TimeoutInUs)

int XsUartDrv_ClearRxUart(volatile UartRegsT *pUart);
int XsUartDrv_ClearRxUartDef(void);	//using default Uart Device
#define XsUartDrv_ClearRxUartFF()\
	XsUartDrv_ClearRxUart((volatile UartRegsT *)FFUARTREG_PHY_BASE_ADDR)
#define XsUartDrv_ClearRxUartBT()\
	XsUartDrv_ClearRxUart((volatile UartRegsT *)BTUARTREG_PHY_BASE_ADDR)
		
//printf functions, DO NOT use these functions with more than 256 chars
void PrintfUart(volatile UartRegsT *pUart, char * fmt, ...);
void PrintfUartDef(char * fmt, ...);	//using default Uart Device
void PrintfUartFF(char * fmt, ...);
void PrintfUartBT(char * fmt, ...);
void PrintfUartST(char * fmt, ...);

//dump address 
void XsUartDrv_DumpAddr(unsigned base_address, int nWord);

//get string from default uart device
char * GetsConsole(char *buf);	// in retargtx.c

#endif //__XSUART_DRV_H

⌨️ 快捷键说明

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