OpenEdv-开源电子网

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

战舰V3开发板ADC采集数据写入SD卡txt文本文件

[复制链接]

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-11-12
在线时间
19 小时
发表于 2017-7-14 16:10:33 | 显示全部楼层 |阅读模式
1金钱
如题,程序见下,问题是txt文本的数据不对。
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "sram.h"
#include "malloc.h"
#include "string.h"
#include "mmc_sd.h"
#include "ff.h"
#include "usmart.h"
#include "adc.h"
//////////
FIL fnew;                                                                                                        /* file objects */
FATFS fs1;                                                                                                        /* Work area (file system object) for logical drives */
FRESULT res;
extern UINT br, bw;                                                    /* File R/W count */
BYTE buffer[4096]={0};                               /* file copy buffer */
BYTE textFileBuffer[] = "Welcome , today is a good day";


int main(void)
{         

        u8 t=0;                               

        u16 adcx;
        unsigned char temp0[400]={48,49,50,51,52,53,54,55,56,57,58};        //ASCII  实际为0 1 2 。。。
        u16 temp1;
       
        delay_init();                     //延时函数初始化          
        NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        uart_init(9600);                 //串口初始化为9600
        LED_Init();                             //LED端口初始化
        LCD_Init();                                 //初始化液晶
        KEY_Init();                           //初始化按键
         Adc_Init();                                  //ADC初始化
        usmart_dev.init(72);       
        mem_init(SRAMIN);        //初始化内部内存池       

         f_mount(0,&fs1);
         res = f_open(&fnew, "0:newfile.txt", FA_CREATE_ALWAYS | FA_WRITE );
         if ( res == FR_OK )
                {
                        res = f_write(&fnew, textFileBuffer, sizeof(textFileBuffer), &bw);
                        f_close(&fnew);      
                }

                res = f_open(&fnew, "0:armfly.txt", FA_OPEN_EXISTING | FA_READ);          
                res = f_read(&fnew, buffer, sizeof(buffer), &br);
                /* Close open files */
                f_close(&fnew);                                              

    f_mount(0, NULL);
         
       
        while(1)
        {
                if(KEY2==0)
                {
                for(t=0;t<128;t++)
                {
                adcx=Get_Adc_Average(ADC_Channel_0,5);
                temp0[t]= (char)adcx*(3300.0/4096)+'0' ;


               
                adcx=Get_Adc_Average(ADC_Channel_1,5);
                temp0[t+128]= (char)adcx*(3300.0/4096)+'0' ;


               
                adcx=Get_Adc_Average(ADC_Channel_2,5);
                temp0[t+256]= (char)adcx*(3300.0/4096)+'0' ;

                LED1=!LED1;

                }
                               
        }
               
                if(KEY1==0)
                {

                f_mount(0,&fs1);
                res = f_open(&fnew, "0:ADC.txt", FA_CREATE_ALWAYS | FA_WRITE );
                if ( res == FR_OK )
                {
                        res = f_write(&fnew, temp0, sizeof(temp0), &bw);
                        f_close(&fnew);      
                }


                f_close(&fnew);                                              

               f_mount(0, NULL);
         
                LED1=!LED1;
       
                }
               
                if(KEY0==0)
                {

         
                        LED1=!LED1;
                        LCD_ShowString(0,250,200,16,16,buffer);
       
                }
               
                LED0=!LED0;

        }
}
//注释:
KEY0 按下读取已有文本中字符串并显示。
KEY2按下为AD采集数据,转换放入char型数组
KEY1 按下char数组 存入TXT。


上电运行后,按KEY1       SD卡中TXT文本中为  0 1 2 3 4 5 6 7 8 9 :。正确;
                       按KEY2     AD采集后。   在按KEY1。数据就不对了。


       




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

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-11-12
在线时间
19 小时
 楼主| 发表于 2017-7-18 00:58:11 | 显示全部楼层
原子 老大帮忙看看啊。。。求解答
回复

使用道具 举报

3

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2017-3-28
在线时间
29 小时
发表于 2017-9-15 15:24:25 | 显示全部楼层
您好,请问这种模式下,AD的采样率和写入SD的速率能达到多少?
回复

使用道具 举报

25

主题

134

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1190
金钱
1190
注册时间
2016-9-17
在线时间
140 小时
发表于 2017-9-15 15:26:45 | 显示全部楼层
把工程发上来呀!!!
回复

使用道具 举报

2

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2014-9-26
在线时间
26 小时
发表于 2017-9-19 12:02:49 | 显示全部楼层
看看看看
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-9-20 00:59:40 | 显示全部楼层
仿真找问题啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 10:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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