先定义两个数组 一个发送数组,一个接收数组
/*****************************************************************
函数名称: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;
}
}
}
文章评论(0条评论)
登录后参与讨论