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

📄 uart.h

📁 PIC16F887底层驱动(C语言)
💻 H
字号:
/*
****************************************************************************************************
串口相关函数
****************************************************************************************************
*/
/*
****************************************************************************************************
日志:
		2008-06-18
		创建该文件										
****************************************************************************************************
*/
/*
****************************************************************************************************
函数说明:
		InitUart:串行口初始化,应使用11.0592M晶振
		PutChar: 输出单字符(1字节数据)
		SIG_USART_RECV:串口中断处理函数	
		该函数映射到Uart_INT(uint8 temp)
****************************************************************************************************
*/
void InitUart(void)
{
	#ifdef Bound 1200
		TXSTA=TXEN;										//发送使能,64分拼,低速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x8F;
	#endif

	#ifdef Bound 2400
		TXSTA=TXEN;										//发送使能,64分拼,低速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x47;
	#endif

	#ifdef Bound 4800
		TXSTA=TXEN;										//发送使能,64分拼,低速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x23;
	#endif

	#ifdef Bound 9600
		TXSTA=TXEN;										//发送使能,64分拼,低速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x11;
	#endif

	#ifdef Bound 14400
		TXSTA=TXEN;										//发送使能,64分拼,低速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x0B;
	#endif

	#ifdef Bound 19200
		TXSTA=TXEN|BRGH;								//发送使能,16分频,高速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x23;
	#endif

	#ifdef Bound 38400
		TXSTA=TXEN|BRGH;								//发送使能,16分频,高速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x11;
	#endif

	#ifdef Bound 57600
		TXSTA=TXEN|BRGH;								//发送使能,16分频,高速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x0B;
	#endif

	#ifdef Bound 115200
		TXSTA=TXEN|BRGH;								//发送使能,16分频,高速选择
	    RCSTA=SPEN|CREN;								//接收使能,连续接收使能
		SPBRG=0x05;
	#endif
	PIE1=RCIE;											//接收中断使能
}

void Putchar(uint8 Uartdata)
{
	TXREG=Uartdata;
	NOP();
	NOP();
	while(TXIF==0);
}

void Putdata(uint8 *Uartdata)
{
	TXREG=*Uartdata;
	NOP();
	NOP();
	while(TXIF==0);
	(*Uartdata)++;
}

void Uart_Int(void)
{
	/*if(Uart_Temp[0]=='X')
	{
		Uart_Temp[Lenth]=Temp;
		Lenth++;
	}
	else if(Temp=='Y')
	{
		if(Temp==0x)
	}
	
	else
	{
		Uart_Temp[Lenth]=Temp;
		Lenth++;
	}*/
}

⌨️ 快捷键说明

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