打印

请教LPC2200串口中断发送问题,谢谢!

[复制链接]
1927|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ericli_80|  楼主 | 2007-12-13 13:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我串口初始化程序如下:可是就是无法进入中断发送
我已经打开了中断,能进入中断接收数据
void Uart0_Init(void)
{
 uint16 Fdiv;
 PINSEL0 = (PINSEL0&0xfffffff0)|0x05; //选择串口
 U0LCR = 0x83;
 Fdiv = (Fpclk/16)/UART_BPS;
 U0DLM = Fdiv/256;
 U0DLL = Fdiv%256;
 U0LCR = 0x03;

 U0FCR  =  0x01; //接收一个字符
 U0IER  =  0x03; //开接收、发送中断   
 VICIntSelect = 0x00000000;//设置UART0为IRQ中断,其他中断为IRQ中断
 VICVectCntl0=0x26;
 VICVectAddr0 =(uint32)Uart0_Receive;
 VICIntEnable = 0x00000040;//UART0使能中断
}

中断程序

void __irq Uart0_Receive(void)
{
   uint8 Re;

 if(U0LSR&0x01) //读取数据
 {
         InBuffer[0]=U0RBR;
         U0IER=0x03;
         InFlag=1;
 }
 else if(U0LSR&0x20)//发送数据
 {
         U0THR=0x54;
         U0IER=0x01;
 }
 VICVectAddr=0;
 Re=U0IIR;
}

相关帖子

沙发
阿南| | 2007-12-13 19:36 | 只看该作者

没用过LPC2200,不过请问楼主,

串口发送和接收是共用一个中断向量吗?如果是,接收都可以,发送不行,应该只是发送使能的问题吧

使用特权

评论回复
板凳
armecos| | 2007-12-13 21:15 | 只看该作者

你这样写程序十分不利于阅读

你这样写程序十分不利于阅读

以下仅供参考:(所有程序均在2210调试通过,串口支持中断收发,128字节缓冲)

在2200上中断程序应该这样写:
第三讲 ecos中断操作

在2200上串口程序应该这样写:
第六讲 串口操作

其他请参考:
EasyARM2200和SmartARM2200增值软件合集第二版

另:
www.armecos.com上有免费测试程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝