您的位置:首页 > 其它

s3c2440串口接收中断(OK2440III)

2012-03-26 22:02 246 查看
#include"uart2440.h"
#include"def.h"
#include"2440addr.h"
#include"led2440.h"//引入led
#defineUART_CLK50000000//UART0的时钟源设为PCLK
#defineUART_BRUD(baud){rUBRDIV0=((UART_CLK/(baud*16))-1)}
void__irquart_irq_recv(void)
{
uint8buf_recv;
uint8buf[]="接收中断发生...\r\n";
uart_send(buf);
buf_recv=uart_rev();
uart_send_byte(buf_recv);
}

voiduart_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);//和串口的中断

}
voiduart_irq(void)
{
uart_irq_init();
while(1)
{
led(1); //等待中断
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: