硬汉嵌入式论坛

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

[有问必答] 数据采集连续写入SD卡

[复制链接]

6

主题

9

回帖

27

积分

新手上路

积分
27
发表于 2021-6-8 20:50:33 | 显示全部楼层 |阅读模式
大家好,我想问一下如果数据采集时,用7606采集。所需采样率大概10K,可以使用软件定时器采集吗?另外,采集后的数据想保存到SD卡中,对于这种连续采集的数据应该怎样保存到SD卡中?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2021-6-9 09:17:02 | 显示全部楼层
我们bsp_timer.C里面的软件定时器吗,这个定时器的精度是1ms。

10K的话,还是用通用硬件定时器方便,

数据保存的话,搞个双缓冲方式。
回复

使用道具 举报

6

主题

9

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2021-6-9 09:51:04 | 显示全部楼层
感谢硬汉哥的指点,对于困扰我很久的问题(小白比较菜),硬汉哥一两句话就能解决,拨开云雾
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
发表于 2024-5-8 17:13:20 | 显示全部楼层
本帖最后由 无限火力 于 2024-5-8 17:28 编辑
eric2013 发表于 2021-6-9 09:17
我们bsp_timer.C里面的软件定时器吗,这个定时器的精度是1ms。

10K的话,还是用通用硬件定时器方便,

硬汉哥你好,我现在在做f407+ad7606的spi方式做数据采集,移植了你们代码,现在实现了数据采集部分,采样率在10k左右,需要将数据存储到sd卡里,现在我是将采集到的数据放到一个uint16_t这样一个类型的数组里,大小是4096,我用fwrite函数写入这个数组,在电脑端打开文件是乱码,请问这是怎么回事呢,代码在下面

void AD7606_ReadFifo(void)
{
        uint32_t i;
       
        if(g_tAD.FIFO1Full_flag == 1)
        {
                res = f_open(&fil, "0:/data101.txt", FA_OPEN_ALWAYS | FA_WRITE );
                if (res != FR_OK) {
                        // 文件打开失败
                printf("文件打开失败\r\n");
                }               
                f_lseek(&fil, f_size(&fil));       
                res= f_write(&fil,(char *)g_tAD.usFIFO1Buf , sizeof(g_tAD.usFIFO1Buf), &bww);

                printf("FIFO1写入%d字节\r\n",bww);
//                for(i = 0; i < CA_SIZE; i++)
//                {
//                                                int_sampleVol = ((int32_t)50000)*((float)((short)g_tAD.usFIFO1Buf)/32768);        //单位0.1mv       
//                                        sprintf(buf,"%0.1f\r\n", (float)int_sampleVol/10+15);
////                                int_sampleVol = int_sampleVol/10+15+'0';
//                                        res= f_write(&fil, buf, sizeof(buf), &bww);
//                                        f_lseek(&fil, f_size(&fil));       
//                                        printf("FIFO1写入%d字节\r\n",bww);
//                        if(res != FR_OK)printf("写入数据失败\r\n");
//                }
               
                f_close(&fil);
      /*************************************/           
     INTX_DISABLE();//关掉总中断
     g_tAD.FIFO1Full_flag = 0;
     INTX_ENABLE();//开启总中断
        }
        if(g_tAD.FIFO2Full_flag == 1)
        {       
                res = f_open(&fil, "0:/data101.txt", FA_OPEN_ALWAYS | FA_WRITE );
                if (res != FR_OK) {
                        // 文件打开失败
                printf("文件打开失败\r\n");
                }               
                f_lseek(&fil, f_size(&fil));
                res= f_write(&fil,(char *)g_tAD.usFIFO1Buf , sizeof(g_tAD.usFIFO2Buf), &bww);
                printf("FIFO2写入%d字节\r\n",bww);
//                for(i = 0; i < CA_SIZE; i++)
//                {
//                                                int_sampleVol = ((int32_t)50000)*((float)((short)g_tAD.usFIFO2Buf)/32768);        //单位0.1mv       
//        //                               
////                                        int_sampleVol = int_sampleVol/10+15+'0';
//                                                sprintf(buf,"%0.1f\r\n", (float)int_sampleVol/10+15);
//                                                res= f_write(&fil, buf, sizeof(buf), &bww);
//                                                f_lseek(&fil, f_size(&fil));       
//                                                printf("FIFO2写入%d字节\r\n",bww);
//                        if(res != FR_OK)printf("写入数据失败\r\n");
//                }
       
                f_close(&fil);
      /*************************************/                         
     INTX_DISABLE();//关掉总中断
     g_tAD.FIFO2Full_flag = 0;
     INTX_ENABLE();//开启总中断
        }
}

回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
发表于 2024-5-8 17:14:14 | 显示全部楼层
哈喽。我最近也在做这个项目,不知道你的问题解决了吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 20:17 , Processed in 0.281612 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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