硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3498|回复: 2
收起左侧

[μCOS-III] 版主能不能讲讲ucserial这个部件的使用心得?

[复制链接]

56

主题

905

回帖

1073

积分

至尊会员

积分
1073
发表于 2015-10-16 14:57:46 | 显示全部楼层 |阅读模式
看这个里面写得好复杂,建议使用不? 用这个有啥优点和缺点呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2015-10-16 15:02:07 | 显示全部楼层
我没有用过这个,搞得有些复杂了。一直用的我们自己的串口FIFO。
回复

使用道具 举报

56

主题

905

回帖

1073

积分

至尊会员

积分
1073
 楼主| 发表于 2015-10-16 15:07:47 | 显示全部楼层
收到。 能否看看我的fifo  移植的linux的   


#include <kfifo.h>




int __kfifo_init(struct __kfifo *fifo, void *buffer, unsigned int size)
{
    fifo->in = 0;
    fifo->out = 0;
    fifo->mask = 0;
    fifo->data = buffer;

        if (size < 2) {
        return -1;
    }

        if ((size & (size-1)) != 0)
        {
                return -2;        /*** Must be a power of 2 (2,4,8,16,32,64,128,256,512,...) ***/
        }

    fifo->mask = size - 1;

    return 0;
}




   
unsigned int __kfifo_push_char(struct __kfifo *fifo,  const char *p)
{

    if(( ( fifo->in - fifo->out ) & ( ~fifo->mask ) ) == 0 )
    {
        *( (char*)fifo->data + (fifo->in++ & fifo->mask) ) = *p;

        return 1;
    }        

    return 0;      
}





unsigned int __kfifo_pop_char(struct __kfifo *fifo, char* p )
{
    if( fifo->in != fifo->out )
    {
        *p =  *(  (char*)fifo->data + (fifo->out++ &  fifo->mask) ) ;
        
        return 1;
    }
   
    return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 06:21 , Processed in 0.162006 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表