这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » UART 高手请看初始化代码,为何不能同时使用两UART中断?

共2条 1/1 1 跳转至

UART 高手请看初始化代码,为何不能同时使用两UART中断?

院士
2006-09-17 18:14:16     打赏
UART 高手请看初始化代码,为何不能同时使用两UART中断?



关键词: 高手     请看     初始化     代码     为何     不能     同时     用两         

院士
2006-12-22 22:43:00     打赏
2楼

PINSEL0 = 0x00050005;                // 设置I/O连接到UART0  UART1,
   PINSEL1 = 0x00000000;                //其他连接通用IO
   uart0_set.datab = 8;                 // 8位数据位
   uart0_set.stopb = 1;                 // 1位停止位
   uart0_set.parity = 0;                // 无奇偶校验
   UART0_Ini(9600, uart0_set);          // 初始化串口模式
   UART1_Ini(9600,uart0_set);
   U0FCR = 0x81;        // 使能FIFO,并设置触发点为8字节
   U0IER = 0x01;          // 允许RBR中断,即接收中断
   U1FCR = 0x81;     // 使能FIFO,并设置触发点为8字节
   U1IER = 0x01;                        // 允许RBR中断,即接收中断
    /* 设置uart0中断允许 */
   VICIntSelect = 0x00000000;          // 设置所有通道为IRQ中断
   VICVectCntl0 = 0x26; // UART0中断通道分配到IRQ slot 0,即优先级最高
   VICVectAddr0 = (int)IRQ_UART0;       // 设置UART0向量地址
   /*-------UART1 中断允许-----------------------------*/
    VICVectCntl2 = 0x27;       // UART1中断通道分配到IRQ slot 1,
    VICVectAddr1 = (int)IRQ_UART1;       // 设置UART1向量地址
    VICIntEnable = 0x000000c0; // 使能UART0\1中断bit7  bit6 =1
  这样不管从PC机发送数据到那一个UART都不会产生中断。
  但我把VICIntEnable = 0x000000c0;改为VICIntEnable =   
  0x00000040;  // 使能UART0中断bit6=1
  UART0中断产生并且正确,
  把VICIntEnable = 0x000000c0;改为VICIntEnable =   
  0x00000080;  // 使能UART1中断bit7=1
  UART1中断产生并且正确,
       但同时设置两个UART中断允许,为什么就都不能产生中断  呢?
  
   
   


1: 这两句有问题:    VICVectCntl2 = 0x27;       // UART1中断通道分配到IRQ slot 1,
    VICVectAddr1 = (int)IRQ_UART1;       // 设置UART1向量地址 2: 不好意思,是我写错了 VICVectCntl2 = 0x27;VICVectCntl2 = 0x27;应是VICVectCntl1 = 0x27
但是一样的问题。 3: 看不出其它问题,而且我们针对您的问题对所有实验板测试..没有发现您遇到的问题。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]