📄 uart.h~
字号:
#ifndef _UART_INCLUDED_
#define _UART_INCLUDED_
#include <mega32.h>
//全为了调试方便
uchar uart_order=0;
bit cmden=0;
#define UPE 2
#define OVR 3
#define FE 4
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status;
status=UCSRA;
cmden=0;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
uart_order=getchar();
//uart_order=48; //得到实际值
cmden=1;
};
}
void uart_init(void)
{
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
#asm("sei") //开中断
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -