ADC数据采集存储到SD卡的问题

2019-10-15 07:48发布

本人大三学生,最近在做一个关于stm32   ADC 8通道数据采集存储到SD卡进行小波变换分析的一个小项目。
遇到ad采集的数据存储到SD卡是出现严重问题,还有就是不能多次循环采样,采集的只能存储一次!
还希望集思广益,大神的兄弟可以不惜吝啬指点我一下!若项目能成功必将代码开源啊!(本人邮箱:1294141271@qq.com
通过二维数组进行进行AD采样,通过busy中断进入AD采集,同时新建一个txt,把数据通过sprintf浮点转换成字符存储到SD卡!
 中断函数主要的部分代码如下:
   AD7606.CHn[0][AD7606.W_index] = AD7606_FSMC->AD7606_Read; 
   、、、、
   AD7606.CHn[7][AD7606.W_index] = AD7606_FSMC->AD7606_Read; 
   n=sprintf((char*)AD_Uart,"%3.2f,%3.2f,%3.2f,%3.2f,%3.2f,%3.2f,%3.2f%,%3.2f", AD7606.CHn[0][AD7606.R_index]/32768*5,AD7606.CHn[1][AD7606.R_index]/32768*5,AD7606.CHn[2][AD7606.R_index]/32768*5,AD7606.CHn[3][AD7606.R_index]/32768*5,AD7606.CHn[4][AD7606.R_index]/32768*5,AD7606.CHn[5][AD7606.R_index]/32768*5,AD7606.CHn[6][AD7606.R_index]/32768*5,AD7606.CHn[7][AD7606.R_index]/32768*5);     //把每个AD采样的数据转换成浮点数以字符格式存入数组AD_Uart
   f_mount(0,&fs);
   res = f_open(&fnew, "0:AD采样.txt", FA_CREATE_ALWAYS | FA_WRITE );  //创文件txt
  if ( res == FR_OK )
   {
     res = f_write(&fnew,  AD_Uart, n, &bw);  //写数据
     f_close(&fnew);  
   }
    else if(res == FR_EXIST)  //再次进入中断,文件已存在
     {
        f_lseek(&fnew,fnew.fsize);     //指针移操作
        res = f_write(&fnew, AD_Uart,n,&bw);   //写入第二次采集的数据
       f_close(&fnew);         
     }
  AD7606.R_index = (AD7606.R_index==(DATA_LEN-1))?0:AD7606.R_index+1;  //索引增加,进行下一次AD采样
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
daska110
1楼-- · 2019-10-15 08:26
AD7606_Read为什么要给AD7606.CHn[0][AD7606.W_index] 0-7(共八个)不同通道的数组?
不能多次循环采样,采集的只能存储一次 什么意思?
时间总会慷慨
2楼-- · 2019-10-15 09:16
 精彩回答 2  元偷偷看……
daska110
3楼-- · 2019-10-15 11:29
回复【4楼】时间总会慷慨:
---------------------------------
那你这八个通道数组里的值一样的啊,(都是AD7606_FSMC->AD7606_Read)
AD_Uart也就是八个重复的值,有什么意义

文件先close 再open
suxiaoxi666
4楼-- · 2019-10-15 17:28
问一下lz 你的sd卡移植文件系统后和数据采集的程序能成功存入数据吗,keil选项里的 use microlib这个勾选了吗?
时间总会慷慨
5楼-- · 2019-10-15 22:27
回复【5楼】daska110:
---------------------------------
AD7606_FSMC->AD7606_Read 这句代码是硬件决定的,当AD7606的两个涉及采样的引脚连在一起的时候它采集一个通道之后会自动采集下一通道。

文件难道不是先创建(open)然后在close?!!
时间总会慷慨
6楼-- · 2019-10-15 23:09
回复【6楼】suxiaoxi666:
---------------------------------
能存入数据的,就是采集到的不是我要的数据   0.00 ,0.00, 0.00, 0.00 ,0.00 ,0.00, 0.00, 0.00
主要问题是采集数据有问题,而且是只能采集一组8通道~  =、=//

一周热门 更多>