原创 串口中断函数

2009-1-5 16:15 3242 7 7 分类: MCU/ 嵌入式

先定义两个数组 一个发送数组,一个接收数组


 


/*****************************************************************
函数名称:CommISR
参数: 无
返回值:无
函数功能:串口中断函数,当串口发送中断或串口接收中断发生时,进入中断
******************************************************************/
void CommISR(void) interrupt 4 //串口中断函数
{
// int i;
 UCHAR temp;
 if (_testbit_(TI))   //发送TI置1中断
 {


  TI=0;


  SBUF=*sendbp; //要发送的数据送入发送缓冲区


  sendbp++;    //指针变量指向CommSendBuffer数组中的数据
  return;
 }
 if (_testbit_(RI)) //接收TI置1,应答器接收中断 
 { 
  RI=0;
  temp=SBUF;    //接受缓冲区的值送入中间变量
  CommRecBuffer[writ_rec_num]=temp;  //数组下标号
  writ_rec_num++;   
  
  if(writ_rec_num>=DB_SENDMAXSIZE)  //大于DB_SENDMAXSIZE=0x80,则又重新归零
  {
   writ_rec_num=0;
   
  }


  
 } 


}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条