[ZLG-ARM] LPC2387串口中断问题

[复制链接]
 楼主| sytu_chyq 发表于 2010-6-21 17:47 | 显示全部楼层 |阅读模式
请问这样初始化有问题么,为啥进不了中断程序,谢谢~
  1. void __irq uart0_irq(void)
  2. {
  3. if(0x04 == (U0IIR & 0x0F))
  4. PutFifo();
  5. VICVectAddr = 0x00;
  6. }

  7. void InitSerialPort(void) //9600bps
  8. {
  9. InitialFifo();

  10. PINSEL0 |= 0x50;
  11. PINSEL0 &= ~0xA0;

  12. U0LCR = 0x80;

  13. U0DLM = 0;
  14. U0DLL = 125;

  15. U0LCR = 03;

  16. U0FDR = 0x41;

  17. U0FCR = 0x01;
  18. U0IER |= 0x01;

  19. VICIntEnClr |= 0x40;
  20. VICIntSelect = 0;
  21. VICVectPri6 = 1;
  22. VICVectAddr6 = (unsigned long)uart0_irq;
  23. VICIntEnable |= 0x40;
  24. IRQEnable();
  25. }
 楼主| 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
hqgboy 发表于 2010-6-22 16:55 | 显示全部楼层
汽车电子的例程。
看看。
 楼主| sytu_chyq 发表于 2010-6-24 08:37 | 显示全部楼层
我的问题是好像进不了中断
不用中断接收没问题的
 楼主| sytu_chyq 发表于 2010-6-24 12:04 | 显示全部楼层
改成DEBUGINFLASH好像可以了
但是调试让程序跳到中断服务程序后,
执行了VICVectAddr = 0x00;
VICVectAddr却不等0(查看0xFFFFFF00)
再执行程序就不能中断了
咋回事
 楼主| sytu_chyq 发表于 2010-6-24 14:05 | 显示全部楼层
不能单步调试。。
 楼主| sytu_chyq 发表于 2010-6-24 14:05 | 显示全部楼层
??
13039826907 发表于 2019-1-10 14:24 | 显示全部楼层
楼主还在吗。。这么多年了** 我现在也进不去了。好像LPC2387这个型号有毒吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

223

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部