打印
[ZLG-ARM]

请教各位大侠 : LPC2368 的 UART2 问题

[复制链接]
1756|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kernel99|  楼主 | 2008-6-4 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了LPC2368 的UART2的 代码,可就是进不了中断
代码如下:
 
//中断部分

void __irq IRQ_UART2 (void)
{
    static        INT8U    i;
    
    
    if ((U2IIR & 0x0F) == 0x04)                        // 设置接收到新的数据标志 //
    {
        
        if(i<10)
        {
            rcvbuf2 = U2RBR;                    // 读取FIFO的数据,并清除中断 //
            i+=1;
            if(i==10)
            {
                i=0;
                rcv_new = 1;
            }    
        }    
    }    
        
    U2IER = 0x00;//进中断后暂时关闭中断
    VICVectAddr = 0x00;                                // 中断处理结束 //
    
}




*********************************************************************************************************
* 函数名称: UART2Init( INT32U baudrate )
* 描    述: 串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特率4800
* 入口参数: 
* 出口参数:
* 编 写 人:
* 编写日期:
* 修改日期:                                 
*********************************************************************************************************
*/

void     UART2Init( INT32U baudrate )
{
    INT16U Fdiv;
    
    PINSEL0 =(PINSEL0&0xff0fffff )|0x00500000;       /* RxD2 and TxD2 */
    
    U2LCR = 0x83;                                    /* DLAB=1,允许设置波特率 */
    Fdiv  = (Fpclk / 16) / baudrate;                /* 设置波特率 */
    U2DLM = Fdiv / 256;
    U2DLL = Fdiv % 256;
    U2LCR = 0x03;
    //2007年5月30号更改,禁止使能FIFO
    //U0FCR = 0x01;                                    // 使能FIFO,并设置触发点为1字节 ///
    U2FCR=0x01;
    
    U2IER = 0x01;
    VICIntSelect = 0x00;
    VICVectCntl2 = 0x20 | 0X1C;                        // UART0分配到IRQ slot0,即最高优先级//
    VICVectAddr2 = (INT32U)IRQ_UART2;
    VICIntEnable =1<<28;//使能UART0中断        
}

相关帖子

沙发
zhongyb| | 2008-6-4 20:34 | 只看该作者

先打开电源位

LPC2368的UART2复位后,电源控制默认状态下是禁止的,初始化需要先打开电源位,即PCONP的24位。
PCONP|=0x01<<24;    /* enable UART 2 power/clock */
另外,UART3的电源控制默认状态下也是禁止,使用前也需要进行类似的设置。  

使用特权

评论回复
板凳
boy123| | 2008-6-4 23:54 | 只看该作者

支持2楼.

使用特权

评论回复
地板
yyccaa| | 2008-6-8 09:27 | 只看该作者

同意楼上

23xx的片内外设的相关寄存器设置只有打开了其对应的电源控制位后,程序才能对寄存器进行设置,否则设置是无效的。

使用特权

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

本版积分规则

93

主题

177

帖子

1

粉丝