uart_rx_1byte.c

来自「范例程序 SONiX」· C语言 代码 · 共 65 行

C
65
字号
#include <sn8p26l38.h>

void main (void)

{
	URRX=0x00;			// clear URRX register	

	FURXEN=0;			// Disable UART Function	

	FURXPEN=0;			// Disable UART RX parity bit check function

	FURXM=0;			// 1-byte

	URBRC=0xD2;			// baud -->9600
	
//================================================================
//	 UART Baud Rate = Fhosc/PreScaler/(Divider*8)
//=============================|==================================
//       Fhosc =16 MHz         |	Fhosc =4 MHz
//=============================|==================================
//	baud -->   data        |	baud -->   data
//	1200 --> 11010 101 b   |	1200 --> 01101 100 b
//	2400 --> 11010 100 b   |	2400 --> 01101 011 b
//	4800 --> 11010 011 b   |	4800 --> 01101 010 b
//	9600 --> 11010 010 b   |	9600 --> 01101 001 b
//	19200 -> 11010 001 b   |	19200 -> 01101 000 b	
//	38400 -> 11001 000 b   |		*
//	51200 -> 10011 000 b   |		*
//	57600 -> 10000 000 b   |		*
//	102400-> 01001 000 b   |	 	*
//	115200-> 01000 000 b   |	 	*

	FURXEN=1;		// Enable UART

	FRXIEN=1;		// Enable RX interrupt
	FRXIRQ=0;		// clear RX interrupt request flag

	FGIE=1;
	while(1)
	{
//=====================================================
//
//		User code
//
//=====================================================
	}	
}
	 
__interrupt isr (void)
{

	if((FRXIEN==1)&&(FRXIRQ==1))
	{
     	FRXIRQ=0;
		rx_buf=URRXD1;	
		
	 }


}



	

⌨️ 快捷键说明

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