建立txt文件没有问题,主要就是格式转换部分(红 {MOD}部分)。。。希望大家能帮我看看,还想问一句:如何在加速度传感器采集数据的同时就能把数据记录下来呢?
#include "led.h" //我是在FATFS实验历程的基础上改的
#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 "exfuns.h"
#include "usmart.h"
#include "math.h"
#include "beep.h"
int main(void)
{
FIL f_txt;
FRESULT res;
int *N;
char a[10000];
int i=0,j=150,k=0;
char *Data;
for(i=0;i<100;i++)
{
k+=sprintf(a,"%d",j); //这里感觉每次都是在文件的开头写的;我的目的是将整型转换为字符串,以“/”分隔,便于以后的读取、辨认
j++;
a[k+1]=46; //46是“/”的ASCII码
k=k+2;
}
Data=&a[0];
delay_init();
NVIC_Configuration();
uart_init(9600); LED_Init();
LCD_Init();
BEEP_Init();
exfuns_init();
usmart_dev.init(72);
mem_init(SRAMIN);
POINT_COLOR=RED;
LCD_ShowString(60,50,200,16,16,"2015/10/20");
while(SD_Initialize())
{
LCD_ShowString(60,70,200,16,16,"SD Card Error!");
delay_ms(200);
LCD_Fill(60,70,240,150+16,WHITE);
delay_ms(200);
LED0=!LED0;
}
exfuns_init();
f_mount(0,fs[0]);
f_mount(1,fs[1]);
res=f_open(&f_txt,"test.txt",FA_OPEN_ALWAYS | FA_WRITE);
if(res==0)
{
f_lseek(&f_txt,0);
f_write(&f_txt,Data,strlen(Data),(UINT*)&N);
f_close(&f_txt);
BEEP=1;
delay_ms(300);
BEEP=0;
}
while(1)
{
LED0=!LED0;
LED1=!LED1;
delay_ms(200);
LED0=!LED0;
LED1=!LED1;
delay_ms(200);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
谢谢原子哥,这个问题解决了。还想过问一下如何在加速度传感器检测数据的同时保存和记录数据呢?我一直没有想到一个好的方法,麻烦了
for(i=0;i<100;i++)
{
k+=sprintf(a,"%d",j);
j++;
a[k]=46;
a+=k;
k=k+2;
}
---------------------------------
你要往后偏移,否则都是在同一个地址写数据.
---------------------------------
C语言中是不能直接对字符数组名加减,这样编译是通过不了的。。。
---------------------------------
确实,你先赋值给指针吧,然后指针偏移即可.
一周热门 更多>