OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2702|回复: 8

通过FIFO读取寄存器的的数值的例程

[复制链接]

39

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
630
金钱
630
注册时间
2016-8-25
在线时间
57 小时
发表于 2017-2-19 18:36:48 | 显示全部楼层 |阅读模式
10金钱
求一个通过FIFO读取寄存器的的数值的例程

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7546
金钱
7546
注册时间
2016-11-30
在线时间
642 小时
发表于 2017-2-19 18:36:49 | 显示全部楼层
参考一下吧!

Queue.rar

2.14 KB, 下载次数: 141

回复

使用道具 举报

39

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
630
金钱
630
注册时间
2016-8-25
在线时间
57 小时
 楼主| 发表于 2017-2-19 18:37:18 | 显示全部楼层
原来发帖是要扣金币的
回复

使用道具 举报

39

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
630
金钱
630
注册时间
2016-8-25
在线时间
57 小时
 楼主| 发表于 2017-2-19 18:38:35 | 显示全部楼层
顶一下,求帮忙
回复

使用道具 举报

39

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
630
金钱
630
注册时间
2016-8-25
在线时间
57 小时
 楼主| 发表于 2017-2-20 08:40:38 | 显示全部楼层
求指点,谢谢
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7546
金钱
7546
注册时间
2016-11-30
在线时间
642 小时
发表于 2017-2-20 09:36:20 | 显示全部楼层
循环队列?
回复

使用道具 举报

39

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
630
金钱
630
注册时间
2016-8-25
在线时间
57 小时
 楼主| 发表于 2017-2-20 09:40:15 | 显示全部楼层

嗯,应该是的
回复

使用道具 举报

7

主题

65

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
3193
金钱
3193
注册时间
2013-12-8
在线时间
439 小时
发表于 2017-2-20 09:47:03 | 显示全部楼层
[mw_shl_code=applescript,true]DataQueue GCodeQueue;                                                //GCODE队列列表
GCodeStruct Line[LINESIZE];                        //队列数组




/********************************************
函数:InitializeGCodeQueue
功能:初始化队列列表
参数:无
返回:无
********************************************/
void InitializeGCodeQueue(void)       
{
    GCodeQueue.Start = &Line[0];
    GCodeQueue.End = &Line[LINESIZE];
    GCodeQueue.In = GCodeQueue.Start;
    GCodeQueue.Out = GCodeQueue.Start;
    GCodeQueue.Size = LINESIZE;
    GCodeQueue.Entries = 0;
}
/********************************************
函数:AddGCodeQueueEntries
功能:增加1列数据到列表
参数:无
返回:无
********************************************/
void AddGCodeQueueEntries(void)
{
    EnterCritical();       
    *GCodeQueue.In++;       
                GCodeQueue.Entries++;       

    if (GCodeQueue.In == GCodeQueue.End)
                {                       
                        GCodeQueue.In = GCodeQueue.Start;
                }
    ExitCritical();       
                while(GCodeQueue.Entries>=LINESIZE)                        //队列已满,等待队列
                {
                        OS.DelayTimeTick(1);
                }
}

/********************************************
函数:SubGCodeQueueEntries
功能:清除1列数据到列表
参数:无
返回:无
********************************************/
void SubGCodeQueueEntries(void)
{
                while(GCodeQueue.Entries==0)                        //队列已空,等待队列
                {
                        OS.DelayTimeTick(1);
                }               
    EnterCritical();                       
    *GCodeQueue.Out++;       
                GCodeQueue.Entries--;       
    if (GCodeQueue.Out == GCodeQueue.End)
                {                       
                        GCodeQueue.Out = GCodeQueue.Start;
                }
    ExitCritical();       
}[/mw_shl_code]

[mw_shl_code=applescript,true]#ifndef __QUEUE_H
#define __QUEUE_H         
#include "stm32f10x.h"       
#include "dk_config.h"


#define LINESIZE                        20
typedef struct
{
        GCodeStruct    * Start;    //指向队列开始
        GCodeStruct    * End;      //指向队列结束
        GCodeStruct    * In;       //插入一个消息  
        GCodeStruct    * Out;      //取出一个消息  
        u8    Size;     // 队列长度
        u8    Entries;  //消息长度      
}DataQueue;
extern DataQueue GCodeQueue;

void InitializeGCodeQueue(void);
void AddGCodeQueueEntries(void);
void SubGCodeQueueEntries(void);
                                                             
#endif[/mw_shl_code]
回复

使用道具 举报

39

主题

234

帖子

0

精华

高级会员

Rank: 4

积分
630
金钱
630
注册时间
2016-8-25
在线时间
57 小时
 楼主| 发表于 2017-2-20 11:48:32 | 显示全部楼层
谢谢了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 02:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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