/****************************************************************************
* 名称 : fifoctl
* 功能 : 串口接收缓存和发送缓存数据
* 入口参数 :rs485_fifo * priv, *data , flag
* 返回值 :缓存中的数据量
****************************************************************************/
int fifoctl(rs485_fifo * priv, unsigned char *data , const unsigned char flag)
{
if (flag == WR) {
priv->w_idx = (priv->w_idx + 1) % BUFSIZE;
/* Save it to buffer */
if (priv->w_idx == priv->r_idx){
/* Adjust read index since buffer is full */
/* Keep the latest one and drop the oldest one */
priv->r_idx = (priv->r_idx + 1) % BUFSIZE;
// printf("debug : write buffer, is full...
");
}
priv->buffer[priv->w_idx] = *data;
}
else{
if ((priv->r_idx == priv->w_idx))
// printf("debug : read buffer, is empty...
");
return 0;
else{
priv->r_idx = (priv->r_idx + 1) % BUFSIZE;
*data= priv->buffer[priv->r_idx];
}
}
return priv->w_idx-priv->r_idx + 1;
}
谁帮我看看这段程序是什么意思啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>