导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→串口中断程序,请教,欢迎讨论!

* 62463: 串口中断程序,请教,欢迎讨论!

   baolqkun 
baolqkun发表的帖子 

 串口中断程序,请教,欢迎讨论!
我现在有一个串口中断程序
运行的结果是他一直在发数据。
是不是SBUF为空
他就有中断
然后就会一直在发送
所以发送一般不用中断
接受才用????

    #include   <stdio.h>   

    #define uchar unsigned char
    #define uint unsigned int

  uint i;
  uint len;
  uchar srdata[15];
  uchar trdata[10]={'M','C','S','5','1'};

  void serial () interrupt 4    //串行口中断,用第二组寄存器
  {
  /*----- Received data interrupt. ---------------*/
  //接收数据
    if(RI==1)
  {
  for(i=0;i  <len;i++)  //len为接收的个数
     { 
  RI=0;
  if(SBUF!=0x0D && SBUF!=0x0A)  //当接收到的数据不是回车换行的话,存数据
  {srdata[i]=SBUF;
      i++;
   }
     else        //当接收到的数据是回车换行的话,指针归零
      {i=0;
     }
    }
    }
  /*------ Transmitted data interrupt. --------------*/
  //发送数据
    if (TI==1)
  {  TI=0;
   SBUF=trdata[0];
 }
        }
   
   main ( )
{
    //Configure UART ,9600波特率
    T3CON = 0x82;
    T3FD = 0x12;
    SCON = 0x52;
 len=10;
    IT0=1;   //负边沿触发
 EX0=1;   //开中断INT0
 IT1=1;   //负边沿触发
    EX1=1;   //开中断1
 ES=1;   //开串行口中断
 EA=1;     //开所有中断
 PS=1;   //串行口中断优先级最高
 while(1)
 { 
  } 
}

发表时间:2004年9月15日8:59:09

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:我在深圳[quote][b]以下是引用[i]guest在2004-9-13 1:24:36
[下一篇帖子]:我也要LED显示屏资料,谢谢!!![原创]