打印
[ZLG-ARM]

LPC2387串口中断问题

[复制链接]
3003|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sytu_chyq|  楼主 | 2010-6-21 17:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问这样初始化有问题么,为啥进不了中断程序,谢谢~
void __irq uart0_irq(void)
{
if(0x04 == (U0IIR & 0x0F))
PutFifo();
VICVectAddr = 0x00;
}

void InitSerialPort(void) //9600bps
{
InitialFifo();

PINSEL0 |= 0x50;
PINSEL0 &= ~0xA0;

U0LCR = 0x80;

U0DLM = 0;
U0DLL = 125;

U0LCR = 03;

U0FDR = 0x41;

U0FCR = 0x01;
U0IER |= 0x01;

VICIntEnClr |= 0x40;
VICIntSelect = 0;
VICVectPri6 = 1;
VICVectAddr6 = (unsigned long)uart0_irq;
VICIntEnable |= 0x40;
IRQEnable();
}

相关帖子

沙发
sytu_chyq|  楼主 | 2010-6-22 14:41 | 只看该作者
为啥?

使用特权

评论回复
板凳
hqgboy| | 2010-6-22 16:54 | 只看该作者
PINSEL0  = (PINSEL0 & ~(0xff << 4)) | (0x05 << 4);
           U0LCR = 0x83;                       
        Fdiv = (Fpclk / 16) / UART0_BPS;    // set baudrate
           U0DLM = Fdiv / 256;                                                       
        U0DLL = Fdiv % 256;            
        U0LCR = ((U0_DATA_BIT)|(U0_STOP_BIT<<2)|(U0_CHECK_BIT_EN<<3)|(U0_CHECK_BIT<<4));
           U0IER = 0x03;                       // Enable RDA and THRE interrupts
        U0FCR = 0xc7;
       
        VICIntSelect &=(~(1<<UART0_INT));                               // Eable FIFO
           VICVectPri6  = 0X07;
           VICVectAddr6  = (uint32)IRQ_UART0;
          VICIntEnable  |= (1<<0x06);

使用特权

评论回复
地板
hqgboy| | 2010-6-22 16:54 | 只看该作者
#define      USE_UART                    0


// <h>UART0初始化相关配置(CPU主频在CPU.h文件中设置)
  

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>UART0_BPS: 串口波特率设置 <1-250000>
//           <i> Default: 9600
*/
#define      UART0_BPS                    9600

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>U0_DATA_BIT: 数据位配置 <0=> 5位 <1=> 6位 <2=> 7位 <3=> 8位
//           <i> Default: 3
*/
#define      U0_DATA_BIT            3

//        <e>禁止或使能校验位

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>U0_CHECK_BIT_EN: 校验位使能 <0=> 禁止校验 <1=> 允许校验
//           <i> Default: 1
*/
#define      U0_CHECK_BIT_EN  1


/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>U0_CHECK_BIT: 校验位配置 <0=> 奇校验 <1=> 偶校验 <2=> 强制1 <3=> 强制0
//           <i> Default: 0
*/
#define      U0_CHECK_BIT            0

//        </e>

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>U0_STOP_BIT: 停止位配置 <0=> 1位 <1=> 2位
//           <i> Default: 0
*/
#define      U0_STOP_BIT            0

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>U0_PROIRITY: 串口中断优先级 <0=> 不优先 <1=> 优先
//           <i> Default: 1
*/
#define      U0_PROIRITY            1


/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>UART0_REC_LENGTH: 接收缓冲区长度字节设置 <1-1024>
//           <i> Default: 100
*/
#define                UART0_REC_LENGTH        100

/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//           <o>UART0_TXD_LENGTH: 发送缓冲区长度字节设置 <1-1024>
//           <i> Default: 100
*/
#define                UART0_TXD_LENGTH        100

使用特权

评论回复
5
hqgboy| | 2010-6-22 16:55 | 只看该作者
汽车电子的例程。
看看。

使用特权

评论回复
6
sytu_chyq|  楼主 | 2010-6-24 08:37 | 只看该作者
我的问题是好像进不了中断
不用中断接收没问题的

使用特权

评论回复
7
sytu_chyq|  楼主 | 2010-6-24 12:04 | 只看该作者
改成DEBUGINFLASH好像可以了
但是调试让程序跳到中断服务程序后,
执行了VICVectAddr = 0x00;
VICVectAddr却不等0(查看0xFFFFFF00)
再执行程序就不能中断了
咋回事

使用特权

评论回复
8
sytu_chyq|  楼主 | 2010-6-24 14:05 | 只看该作者
不能单步调试。。

使用特权

评论回复
9
sytu_chyq|  楼主 | 2010-6-24 14:05 | 只看该作者
??

使用特权

评论回复
10
13039826907| | 2019-1-10 14:24 | 只看该作者
楼主还在吗。。这么多年了** 我现在也进不去了。好像LPC2387这个型号有毒吧

使用特权

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

本版积分规则

37

主题

223

帖子

0

粉丝