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

📄 m10_uart.txt

📁 CoreRiver MCU C语言程序集! 包括:ADC/POWER/PWM/UART/TIME0
💻 TXT
字号:
// File : m10_uart.c 

#include <gc80c520_pl44i.h>
#include <stdio.h>

unsigned char	received_data;
unsigned char transmit_ready;
unsigned char response;
unsigned char i;
code char buff[] = "string";

extern void _putchar(char ch);
void initialize();
void printf_fast(code char *fmt, ...);

void putchar(char ch)
{
	SBUF = ch;
	while(transmit_ready == 0);
	transmit_ready = 0;
}

void uart_int(void) interrupt SIO_VECTOR
{
	if (TI)  
	{				
		// Transmit Mode
		_asm nop _endasm;
		TI = 0;
		transmit_ready = 1;
	} 
	else if (RI) 
	{		
		// Receive Mode
		received_data = SBUF;
		RI = 0;
		
		if(received_data=='T')
		{
			response = 1;
		}
		else
		{
			SBUF = received_data; // Resend to Serial Port
			while(!TI);
			_asm nop _endasm;
			TI=0;
		}
	}
}

void main()
{
	initialize();
	printf("\r\ntest\r\n");
	while(1)
	{
		if(response == 1)
		{
			response = 0;
			printf("test %d 0x%x %s\r\n",10,0x20,buff);
		}
	};
}

void initialize() {

	response = 0;
	transmit_ready = 0;

	ALTSEL |= 0x06;
	
	// *Fosc = 22.1284MHz 57600 bps	
	
	TMOD  = 0x20; 	// Timer 1 : Mode 2<Auto Reload>
	
	SM0 = 0;		// SM0,SM1 = [0,1] : UART Mode 1 (8-bit UART)
	SM1 = 1;
	
	PCON |= 0x80;
	TH1 = 0xFE;
		
	REN	  = 1;		// Reception Enable 
	//TF1   = 0;		  
	ES    = 1;		// UART Interrupt (Commnucation) Enable	
	EA =  1;		// All Interrupts Enable
	TR1 = 1;	// Timer1 Start (Enable)

	
} // End: void initialize(void)


⌨️ 快捷键说明

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