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条回答
时间总会慷慨
1楼-- · 2019-10-16 21:35
有哪个兄弟能帮忙看一下~
suxiaoxi666
2楼-- · 2019-10-17 03:22
楼主,我也研究这个问题呢,qq多少,想和你交流下
时间总会慷慨
3楼-- · 2019-10-17 06:45
回复【16楼】suxiaoxi666:
---------------------------------
QQ:1294141271
624467649
4楼-- · 2019-10-17 10:46
yklstudent 发表于 2015-10-24 17:48
AD+DMA,开辟缓存读取AD值,累计读到N个值再一次性存储到TF卡啊

如果要一次性存的话,怎么sprintf ?

一周热门 更多>