SD卡存储程序

把采集的ad的数据存到SD卡中。

int main(void)
{	
	u16 fwrite_counter=0;	
	unsigned char Temp[11];
	data_ok_flag=1;
	for(i=0;i<12;i++)
	{
		ad[i]=0;
	}
	for(i=0;i<12;i++)
	{
		ad_Mul[i] = 0;
	}

	delay_init();	    //延时函数初始化	  
	RCC_Configuration();
	NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(115200);    //串口1初始化,波特率115200

	//USART2_Config();  //串口2初始化,波特率115200
	printf_init_u3(); //USART3配置
	dma_init_adc1();
	dma_init_adc3();
	delay_ms(1000);mem_init(SRAMIN);	//初始化内部内存池	
	exfuns_init();		//为fatfs相关变量申请内存 
	printf("************* SD test ****************\r\n");//
	
	SDIO_Interrupts_Config(); // 配置SDIO中断

//	sign=1;
	res = f_mount(0, fs[0]); //挂载SD卡 0表示卷标,直接传递到底层diskio.c中
	if (res != FR_OK)
	{
		printf("mount filesystem 0 failed : %d\r\n",res);
	}

	//写文件测试
	printf("write file test......\r\n");
	
	res = f_open(file1, "0:/SensorData.txt", FA_OPEN_ALWAYS | FA_WRITE);
	if(res != FR_OK)
	{
		printf("open file error : %d\r\n",res);
	}
	else
	{
	    f_lseek(file1,file1->fptr+file1->fsize);
		  res = f_write(file1, textFileBuffer, sizeof(textFileBuffer)-1, &bw);               
	}

while1{
          //ad采集程序
			if(FR_OK==res)
			{
					if(data_ok_flag)//数据到来
					{
//						 data_ok_flag=0;
							
							sprintf(All_Data,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %.3f %.3f %.3f %d %d %d %d %d %d %d %d %d %d %d %d ",
					          ad[0],ad[1],ad[2],ad[3],ad[4],ad[5],ad[6],ad[7],ad[8],
				          	ad[9],ad[10],ad[11],angle[0],angle[1],angle[2],SetupADC[0],SetupADC[1],SetupADC[2],SetupADC[3],SetupADC[4],SetupADC[5],SetupADC[6],SetupADC[7],SetupADC[8],SetupADC[9],SetupADC[10],SetupADC[11]);//);//浮点型数据转为指定格式的字符串
							res = f_write(file1, All_Data, strlen(All_Data), &bw);               
							
							res |= f_write(file1, "\r\n",2, &bw);
						
//							fwrite_counter++;
							 if(FR_OK==res)
								{
									printf("write data ok! %d\r\n",bw);
								}
								else
								{
									break;
								}
						}//具体结束的条件可以通过串口1接收来的数据进行判断
						 if(0 == is_check_ok)//条件满足
						{ 
								//退出循环
							    data_ok_flag=0;
									f_write(file1, "xin\r\n",13, &bw); //结束写入的标志
									f_close(file1);//close file 
									//break;
								
						 }
					}
				 else
				 {
					printf("write data error : %d\r\n",res);
				 }	
	 
	}		


}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值