serial.c

来自「采用STC89C51RC单片机」· C语言 代码 · 共 82 行

C
82
字号

#include <config.h>


/*******************************************************************************************************
** Function name: UART_Init
** Descriptions:  串口初始化               
** Input: 无
** Output: 无
********************************************************************************************************/ 
void UART_Init(void)
{
	SCON = 0x50;  					//方式1,10位异步收发; ren:1,允许接收
	TMOD = (TMOD & 0x0F) | 0x20;	//定时器1,方式2,自动重装8
	PCON = PCON | 0x80;
	TH1 = 0xE6; 					//9600
	TL1 = 0xE6;
	
	TR1 = 1;
	TI = 1;
	RI = 1;
//	ET1 = 1;
//	IP	= 0x10;
	ES  = 0;
}

/*******************************************************************************************************
** Function name: UART_UnInit
** Descriptions:  关闭串口              
** Input: 无
** Output: 无
********************************************************************************************************/ 
void UART_UnInit(void)
{
	SCON = 0x00;
	TMOD = TMOD & 0x0F;
	TH1 = 0x00; 
	TR1 = 0;
//	ET1 = 0;
	TI  = 0;
}

/*******************************************************************************************************
** Function name: UART_SendChar
** Descriptions:  向串口发送一个字节            
** Input: 要发送的字符
** Output: 无
********************************************************************************************************/ 
void UART_SendChar(uint8 ch)
{
	SBUF = ch;
	TI = 0;
	while(!TI);
}

/*******************************************************************************************************
** Function name: UART_SendStr
** Descriptions:  向串口发送一个字符串            
** Input: 要发送的字符串
** Output: 无
********************************************************************************************************/
void UART_SendStr(uint8 *pszStr)
{
	while (*pszStr)
		UART_SendChar(*pszStr++);
}


/*******************************************************************************************************
** Function name: UART_ReceiveChar
** Descriptions:  从串口接收一个字符            
** Input: 无
** Output: 接收的字符
********************************************************************************************************/
uint8 UART_ReceiveChar(void)
{
	while (!RI);	
	RI = 0;
	return (SBUF);
}

⌨️ 快捷键说明

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