ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F1] 要采集实时数据该用什么方法呢?

[复制链接]
252|13
| 2018-10-11 17:29 | 显示全部楼层
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
 楼主 | 2018-10-11 17:34 | 显示全部楼层
每秒采集250次数据,每次27个字节,需要实时的写入SD卡。我这个应该怎么在main函数的while循环中写这个采集程序呢?

使用特权

评论回复
| 2018-10-11 17:37 | 显示全部楼层
什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
 楼主 | 2018-10-11 17:40 | 显示全部楼层
我现在的方法似乎采集的有问题。while循环中的程序如下:
        if((flag&0x0a)==0x0a) {        //每次数据准备好后,产生一次中断,标志位置位
                        ADS1299_Drdy(data_count);    //该函数负责采集数据,每次27个字节
                        if(data_count==count_num)
                        {                        
                                Write_wenjian(p_filename,RBuffer_Num,cache_point);   //收集够一定数量开始写进SD卡
                                data_count=0;
                    }                        
                        flag&=(~ADS_DRDY);                 
//                        flag&=(~cache_flag);        
                }
                else if((flag&0x50)==0x50){                                                         //判断开始按键按下

                        p_filename=znFAT_CreateFilename();                                                                        
                        Create_wenjian(p_filename);                                       
                        flag|=start_flag;
                        flag&=(~create_flag);
                        flag&=(~power_start);
                        ADS1299_Start_Pin();
                        ADS1299_RDataC();
                        GPIO_SetBits(GPIOD, GPIO_Pin_6);               
                }
                else if((flag&0x06)==0x06){        
                        GPIO_ResetBits(GPIOD, GPIO_Pin_6);
                        ADS1299_Reset_Pin();
                        ADS1299_Stop_Pin();
                        cache[0]=CountNum;
                        cache[1]=CountNum>>8;
                        cache[2]=CountNum>>16;
                        cache[3]=CountNum>>24;
                        Write_wenjian(p_filename,4,cache_point);
                        znFAT_Close_File(&fileinfo);                                                
                        znFAT_Flush_FS();                        
                        flag=0x44;                        
                }

使用特权

评论回复
| 2018-10-11 17:45 | 显示全部楼层
实时采集最好不用查询,直接中断

使用特权

评论回复
 楼主 | 2018-10-11 17:48 | 显示全部楼层

你说的很是,我这个其实是用的中断做标记,然后返回主函数查询接收数据的。如果直接在中断中接收数据会导致在中断中停留过长时间,不符合中断程序原则啊

使用特权

评论回复
| 2018-10-11 17:53 | 显示全部楼层


通过中断,写入时间头,有变化再写下一个

使用特权

评论回复
| 2018-10-11 17:58 | 显示全部楼层
通过中断,写入时间头,有变化再写下一个

使用特权

评论回复
 楼主 | 2018-10-11 18:01 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

评论回复
| 2018-10-12 10:28 | 显示全部楼层
采集应该没偶问题 问题是 如何写入卡里 这个没有弄过

使用特权

评论回复
| 2018-10-12 10:46 | 显示全部楼层
楼主要采集什么数据呀

使用特权

评论回复
| 2018-10-12 11:02 | 显示全部楼层
用ad采集还是数字量通讯采集

使用特权

评论回复
| 2018-10-12 11:21 | 显示全部楼层
数据类型是什么 模拟量还是数字量

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表