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

📄 uart.h

📁 s32410串口demo, 开发工具ads1.2,实现串口通信.
💻 H
字号:
u8  * ulcon   = NULL;
u16 * ucon    = NULL;
u8  * ufcon   = NULL;
u8  * umcon   = NULL;
u8  * utrstat = NULL;
u8  * uerstat = NULL;
u16 * ufstat  = NULL;
u8  * umstat  = NULL;
u8  * utxh    = NULL;
u8  * urxh    = NULL;
u16 * ubrdiv  = NULL;

//////////////////////////////////////
int SetCurrentUART(int cur)
{
	if(cur==0)
	{
		ulcon   = (u8*)&rULCON0;
		ucon    = (u16*)&rUCON0;
		ufcon   = (u8*)&rUFCON0;
		umcon   = (u8*)&rUMCON0;
		utrstat = (u8*)&rUTRSTAT0;
		uerstat = (u8*)&rUERSTAT0;
		ufstat  = (u16*)&rUFSTAT0;
		umstat  = (u8*)&rUMSTAT0;
		utxh    = (u8*)&rUTXH0;
		urxh    = (u8*)&rURXH0;
		ubrdiv  = (u16*)&rUBRDIV0;
	}
	else if(cur==1)
	{
		ulcon   = (u8*)&rULCON1;
		ucon    = (u16*)&rUCON1;
		ufcon   = (u8*)&rUFCON1;
		umcon   = (u8*)&rUMCON1;
		utrstat = (u8*)&rUTRSTAT1;
		uerstat = (u8*)&rUERSTAT1;
		ufstat  = (u16*)&rUFSTAT1;
		umstat  = (u8*)&rUMSTAT1;
		utxh    = (u8*)&rUTXH1;
		urxh    = (u8*)&rURXH1;
		ubrdiv  = (u16*)&rUBRDIV1;
	}
	return 0;
}
///////////////////////////////////////
void SetULineCon(u8 b)
{
	(*ulcon) = b;
}
////////////////////////////////////////
void SetUCon(u16 h)
{
	(*ucon)=h;
}
////////////////////////////////////////
void SetFifoCon(u8 b)
{
	(*ufcon)=b;
}
////////////////////////////////////////
void SetModemCon(u8 b)
{
	(*umcon)=b;
}
////////////////////////////////////////
u8 GetUTRStat()
{
	return *utrstat;
}
///////////////////////////////////////
u8 GetUERStat()
{
	return *uerstat;
}
////////////////////////////////////////
u8 GetFifoStat()
{
	return *ufstat;
}
////////////////////////////////////////
u8 GetModemStat()
{
	return *umstat;
}
////////////////////////////////////////
void SetBaudRate(u32 bps)
{
	u16 temp = (u16)(get_PCLK()/(bps*16))-1;
	(*ubrdiv)=temp;
}
///////////////////////////////////////
int IsTransmitBufferEmpty()
{
	u8 t=GetUTRStat();
	if(t&0x02)
		return 1;
	return 0;
}
///////////////////////////////////////
void WriteChar(char ch)
{
	while(1)
	{
		if(IsTransmitBufferEmpty())
		{
			(*utxh) = (u8)ch;
			break;
		}
	}
}
///////////////////////////////////////
void WriteString(char *str)
{
	int i=0;
	int j=0;
	while(str[i])
	{
		WriteChar(str[i]);
		i++;
	}
}
///////////////////////////////////////
int UART_Printf(char *szFormat, ...)
{
    char   szBuffer [1024] ;
    va_list pArgList ;
    va_start (pArgList, szFormat) ;
    vsprintf (szBuffer, szFormat, pArgList) ;
    va_end (pArgList) ;
	WriteString(szBuffer);
    return 0;
}

///////////////////////////////////////
void UartInitDefault()
{
	SetCurrentUART(0);
	SetFifoCon(0x00);
	SetModemCon(0x00);
	SetULineCon(0x03);
	SetUCon(0x245);
	SetBaudRate(115200);
}

⌨️ 快捷键说明

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