?? 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=0x08;//防止串口接收中斷使系統運行故障!!!!!
//UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
#asm("sei") //開中斷
}
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -