📄 uart_rx_2byte.c
字号:
#include <sn8p26l38.h>
//#include "uart_rx_2byte.h"
unsigned char rx_buf1,rx_buf2,rx_state;
bit rx_isr;
void main (void)
{
URRX=0x00;
FURXEN=0; // Disable UART Function
FURXPEN=0; // Enable UART RX parity bit check function
// FURXPS=1; // odd parity
FURXPS=0; // even parity
FURXM=1; // 2-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; // Enable ALL interrupt function
while(1)
{
//=====================================================
//
// User code
//
//=====================================================
}
}
__interrupt isr (void)
{
if((FRXIEN==1)&&(FRXIRQ==1))
{
FRXIRQ=0;
rx_buf1=URRXD1;
rx_buf2=URRXD2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -