s3c2440串口接收中断(OK2440III)

#include "uart2440.h"  
#include "def.h"
#include "2440addr.h"
#include "led2440.h" // 引入led
 
#define UART_CLK     50000000        //  UART0的时钟源设为PCLK  
#define UART_BRUD(baud)       { rUBRDIV0 = ((UART_CLK  / (baud * 16)) - 1) }
 
void __irq uart_irq_recv(void)
{
 uint8 buf_recv;
 uint8 buf[] = "接收中断发生...\r\n"; 
 uart_send(buf);
 buf_recv = uart_rev();   
 uart_send_byte(buf_recv);
}

void uart_irq_init(void)
{
 rGPHCON |= 0xa0;            // GPH2,GPH3用作TXD0,RXD0
 rGPHUP  = 0x0c;             // GPH2,GPH3内部上拉 
 rULCON0 &= ~3;
 rULCON0 |= 0x03;            //1位起始位,8位数据位
 rUCON0 |= (1<<0) | (1<<2)| (1<<7) | (1<<8); // 中断方式  电平触发
 rUFCON0  = 0x00;            // 不使用FIFO  
 rUMCON0  = 0x00;            // 不使用流控  
 UART_BRUD(115200);          //波特率115200

 pISR_UART0=(unsigned)uart_irq_recv;//串口收中断函数

 rINTMOD=0;             //所用中断都是IRQ

 EnableIrq(BIT_UART0); //和串口的中断

}
 
void uart_irq(void)
{
	uart_irq_init() ; 
	while(1)
	{
		led(1);		// 等待中断
	}	
}


 

你可能感兴趣的:(c,include,byte)