亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? stm32-SDIO+FatFS文件系統(tǒng)txt-int-ascii
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*********************************************************************************************************
*
*	模塊名稱 : 主程序模塊。
*	文件名稱 : main.c
*	版    本 : V2.0
*	說    明 : 該例程實現(xiàn)讀寫SD卡文件的功能。移植了FatFS文件系統(tǒng)。
*	修改記錄 :
*		版本號  日期       作者    說明
*		v1.0    2011-08-27 armfly  ST固件庫V3.5.0版本。
*		v2.0    2011-10-16 armfly  優(yōu)化工程結構。
*
*	Copyright (C), 2010-2011, 安富萊電子 www.armfly.com
*
*********************************************************************************************************
*/

/*	   
	!!!注意:該例程可以在CPU Flash和CPU RAM中調試,暫時不支持在外部RAM調試。

	這個例程中的函數(shù)用到了較多的局部變量,因此缺省的堆棧不夠用。
	需要調整大一些。
	
	修改 startup_stm32f10x_hd.s 文件
	以前為 :Stack_Size      EQU     0x00000400
	現(xiàn)在為 :Stack_Size      EQU     0x00001000
*/

/*
	操作說明:
	(1) 請接上串口線,打開windows的串口工具,比如超級終端。
	(2) 輸入字符1,打印SD根目錄下的文件和文件夾列表。
	(3) 輸入字符2,在SD卡根目錄下創(chuàng)建一個文件,文件名為 armfly.txt
		并且向該文件寫入一個字符串。
	(4) 輸入字符3,打開SD卡根目錄下的armfly.txt文件,讀出其內容,打印到串口。
	(5) 輸入字符4,創(chuàng)建打開SD卡根目錄下的armfly.txt文件,讀出其內容,打印到串口。
	(6) 輸入字符5,寫文件和讀文件速度測試
*/

#include "stm32f10x.h"		/* 如果要用ST的固件庫,必須包含這個文件 */
#include <stdio.h>			/* 因為用到了printf函數(shù),所以必須包含這個文件 */
#include <string.h>			/* 因為用到了字符串操作函數(shù),所以必須包含這個文件 */
#include "bsp_usart.h"		/* printf函數(shù)定向輸出到串口,所以必須包含這個文件 */
#include "bsp_led.h"		/* LED指示燈驅動模塊 */
#include "bsp_button.h"		/* 按鍵驅動模塊 */
#include "bsp_timer.h"		/* systick定時器模塊 */
#include "bsp_sdio_sd.h"  	/* SD卡驅動模塊 */
#include "ff.h"				/* FatFS文件系統(tǒng)模塊*/	

/* 定義例程名和例程發(fā)布日期 */
#define EXAMPLE_NAME	"SDIO+FatFs文件系統(tǒng)例程"
#define EXAMPLE_DATE	"2011-10-16"
#define DEMO_VER		"2.0"

/* 用于測試讀寫速度 */
#define TEST_FILE_LEN		1000	/* (2*1024*1024)	用于測試的文件長度 */
#define BUF_SIZE				50				/* 每次讀寫SD卡的最大數(shù)據(jù)長度 */
uint8_t g_TestBuf[BUF_SIZE];		
unsigned char str[9]; //全局
unsigned int receivedtxt[30];
/* 僅允許本文件內調用的函數(shù)聲明 */
static void InitBoard(void);
static void PrintfLogo(void);
static void DispMenu(void);
static void ViewRootDir(void);
static void CreateNewFile(void);
static void ReadFileData(void);
static void CreateDir(void);
static void WriteFileTest(void);


unsigned int format_data(char *s, unsigned int adc) //////將常數(shù)合成字符串
{
 int pos=0,i=0;
 static char temp_str[8]={'\0','\0','\0','\0','\0','\0','\0','\0'};

  u32tostr(adc,temp_str);  //////整形變字符串
  while(temp_str[i]) //do
 {
  s[pos]=temp_str[i]; 
  i++;pos++;
 } //;
 i=0;
 //pos++;
 s[pos]=0x0D;pos++;
 s[pos]=0x0A;//pos++;
  pos=0;
 //s[pos]=0; 
 return pos;
}


void ascii_int(char *file_buf) //////將常數(shù)合成字符串
{
 uint32_t i;
uint16_t begin, end;
char Line1[8];
char Line2[8];
char Line3[8];
//1002 回車換行  i==4
//0  回車換行
//2009 回車換行
// 搜索第1行
begin = 0;
for (i = 0; i < 80; i++)
{
if (file_buf[i] == 0x0D)
{
end = i - 1; ////end=3
break;
}
}

// 保存第1行  開始處,結束處
memcpy(Line1, &file_buf[begin], end);

// 搜索第2行
begin = end + 2;
for (i = begin; i < 80; i++)
{
if (file_buf[i] == 0x0D)
{
end = i - 1;
break;
}
}

// 保存第2行
memcpy(Line2, &file_buf[begin], end);

// 搜索第3行
begin = end + 2;
for (i = begin; i < 80; i++)
{
if (file_buf[i] == 0x0D)
{
end = i - 1;
break;
}
}

// 保存第3行
memcpy(Line3, &file_buf[begin], end);

 receivedtxt[0]=strtou32(Line1); 
receivedtxt[1]=strtou32(Line2); 
receivedtxt[2]=strtou32(Line3); 
}

/*
*********************************************************************************************************
*	函 數(shù) 名: main
*	功能說明: c程序入口
*	形    參:無
*	返 回 值: 錯誤代碼(無需處理)
*********************************************************************************************************
*/
int main(void)
{
	char cmd;
	uint8_t KeyCode;
	



	/*
		由于ST固件庫的啟動文件已經執(zhí)行了CPU系統(tǒng)時鐘的初始化,所以不必再次重復配置系統(tǒng)時鐘。
		啟動文件配置了CPU主時鐘頻率、內部Flash訪問速度和可選的外部SRAM FSMC初始化。

		系統(tǒng)時鐘缺省配置為72MHz,如果需要更改,可以修改:
		\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
		中配置系統(tǒng)時鐘的宏。
	*/

	InitBoard();	/* 為了是main函數(shù)看起來更簡潔些,我們將硬件初始化的代碼封裝到這個函數(shù) */
	PrintfLogo();	/* 打印例程Logo到串口1 */
	SDIO_Interrupts_Config();	/* 配置SDIO中斷, 此函數(shù)在bsp_sdio_sd.c */
	
	/* 打印命令列表,用戶可以通過串口操作指令 */
	DispMenu();
	while(1)
	{
		cmd = getchar();

   /* 讀取按鍵,大于0表示有鍵按下 */
		KeyCode = bsp_GetKey();
		if (KeyCode > 0)
		{
			/* 有鍵按下 */
			switch (KeyCode)
			{
				
				case KEY_DOWN_JOY_LEFT:	/* 搖桿LEFT鍵按下 */
				 CreateNewFile();
				
				ReadFileData();		/* 讀取根目錄下armfly.txt的內容 */
				break;
					case KEY_DOWN_JOY_RIGHT:	/* 搖桿RIGHT鍵按下 */
					WriteFileTest();	/* 速度測試 */
				break;
				default:
			
				break;
		  }
		  }
		  	cmd = getchar();

		switch (cmd)
		{
			case '1':
				printf("【1 - ViewRootDir】\r\n");
				ViewRootDir();		/* 顯示SD卡根目錄下的文件名 */
				break;

			case '2':
				printf("【2 - CreateNewFile】\r\n");
				CreateNewFile();		/* 創(chuàng)建一個新文件,寫入一個字符串 */
				break;

			case '3':
				printf("【3 - ReadFileData】\r\n");
				ReadFileData();		/* 讀取根目錄下armfly.txt的內容 */
				break;

			case '4':
				printf("【4 - CreateDir】\r\n");
				CreateDir();		/* 創(chuàng)建目錄 */
				break;

			case '5':
				printf("【5 - TestSpeed】\r\n");
				WriteFileTest();	/* 速度測試 */
				break;
				
			default:
				DispMenu();
				break;
		}
	}
}

/*
*********************************************************************************************************
*	函 數(shù) 名: DispMenu
*	功能說明: 顯示操作提示菜單
*	形    參:無
*	返 回 值: 無
*********************************************************************************************************
*/
static void DispMenu(void)
{
	printf("\r\n*******************************************\r\n");
	printf("請選擇操作命令:\r\n");
	printf("1 - 顯示SD卡根目錄下的文件列表\r\n");
	printf("2 - 創(chuàng)建一個新文件\r\n");
	printf("3 - 讀文件數(shù)據(jù)\r\n");
	printf("4 - 創(chuàng)建目錄\r\n");
	printf("5 - 讀寫文件速度測試\r\n");
}

/*
*********************************************************************************************************
*	函 數(shù) 名: ViewRootDir
*	功能說明: 顯示SD卡根目錄下的文件名
*	形    參:無
*	返 回 值: 無
*********************************************************************************************************
*/
static void ViewRootDir(void)
{
	/* 本函數(shù)使用的局部變量占用較多,請修改啟動文件,保證堆棧空間夠用 */
	FRESULT result;
	FATFS fs;
	DIR DirInf;  
	FILINFO FileInf;
	
	uint8_t tmpStr[20];
	uint32_t cnt = 0;
	
 	/* 掛載文件系統(tǒng) */
	result = f_mount(0, &fs);			/* Mount a logical drive */
	if (result != FR_OK)
	{
		printf("掛載文件系統(tǒng)失敗 (%d)\r\n", result);
	}

	/* 打開根文件夾 */
	result = f_opendir(&DirInf, "/"); /* 如果不帶參數(shù),則從當前目錄開始 */
	if (result != FR_OK) 
	{
		printf("打開根目錄失敗 (%d)\r\n", result);
		return;
	}

	/* 讀取當前文件夾下的文件和目錄 */
	printf("Name\t\tTyepe\t\tSize\r\n");
	for (cnt = 0; ;cnt++) 
	{
		result = f_readdir(&DirInf,&FileInf); 		/* 讀取目錄項,索引會自動下移 */
		if (result != FR_OK || FileInf.fname[0] == 0)
		{
			break;
		}
		
		if (FileInf.fname[0] == '.')
		{
			continue;
		}
		
		printf("%s", FileInf.fname);
		if (strlen(FileInf.fname) < 8)	/* 對齊 */
		{
			printf("\t\t");
		}
		else
		{
			printf("\t");
		}
		if (FileInf.fattrib == AM_DIR)
		{
			printf("目錄\t\t");
		} 
		else 
		{
			printf("文件\t\t");
		}
		printf("%d\r\n", FileInf.fsize);
		sprintf((char *)tmpStr, "%d", FileInf.fsize);
	}

	/* 卸載文件系統(tǒng) */
	f_mount(0, NULL);	
}

/*
*********************************************************************************************************
*	函 數(shù) 名: CreateNewFile
*	功能說明: 在SD卡創(chuàng)建一個新文件,文件內容填寫“www.armfly.com”
*	形    參:無
*	返 回 值: 無
*********************************************************************************************************
*/
static void CreateNewFile(void)
{
	/* 本函數(shù)使用的局部變量占用較多,請修改啟動文件,保證堆棧空間夠用 */
	FRESULT result;
	FATFS fs;
	FIL file;
	DIR DirInf;  
	uint32_t bw;
	
 	/* 掛載文件系統(tǒng) */
	result = f_mount(0, &fs);			/* Mount a logical drive */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内国产精品久久| 欧美日本韩国一区二区三区视频| 国产精品自拍在线| 91蝌蚪porny成人天涯| 日韩精品一区二区三区四区视频| 国产精品久久网站| 午夜视黄欧洲亚洲| 日本电影欧美片| 久久久久亚洲综合| 奇米亚洲午夜久久精品| 欧美亚洲自拍偷拍| 一区在线观看视频| 国产成人免费网站| 欧美mv日韩mv亚洲| 天堂va蜜桃一区二区三区漫画版| 成人爱爱电影网址| 国产日韩欧美精品电影三级在线| 婷婷六月综合亚洲| 欧美在线免费播放| 亚洲你懂的在线视频| 成人免费的视频| 久久亚区不卡日本| 国产一区二区调教| 26uuu成人网一区二区三区| 日本中文字幕一区二区有限公司| 91黄色在线观看| 一区二区三区中文在线| 91亚洲精品一区二区乱码| 国产精品网站在线| 高清shemale亚洲人妖| 国产三级精品在线| www.性欧美| 亚洲国产精品激情在线观看| 国产麻豆精品视频| 久久一区二区三区国产精品| 激情深爱一区二区| 国产欧美一区二区精品忘忧草| 国产一区二区三区免费播放| 欧美精品一区男女天堂| 国产精品亚洲一区二区三区在线 | 日韩欧美一区在线| 视频在线观看一区| 欧美日韩aaaaa| 奇米一区二区三区| 久久亚洲私人国产精品va媚药| 国产一区二区三区综合| 久久久久久夜精品精品免费| 国产suv精品一区二区6| 欧美激情资源网| 91亚洲精品久久久蜜桃| 亚洲大型综合色站| 日韩三级av在线播放| 国产九色sp调教91| 亚洲欧美影音先锋| 欧美老女人第四色| 久久不见久久见中文字幕免费| 久久一区二区三区四区| www.视频一区| 三级欧美在线一区| 国产亚洲一区二区三区在线观看 | 色综合夜色一区| 一级中文字幕一区二区| 欧美一区日韩一区| 春色校园综合激情亚洲| 日韩电影免费一区| 国产午夜精品一区二区三区视频| 99精品视频免费在线观看| 亚洲高清视频的网址| 精品国产百合女同互慰| 99精品桃花视频在线观看| 天堂va蜜桃一区二区三区漫画版| 久久一夜天堂av一区二区三区| 91免费国产视频网站| 久久精品国产99| 亚洲精品成人a在线观看| 日韩一区二区在线免费观看| 成人免费三级在线| 午夜精品久久久久久久久久久| 久久免费国产精品| 欧美三级三级三级| 懂色av一区二区在线播放| 午夜精品福利一区二区三区蜜桃| 日本一区二区不卡视频| 欧美一区二区高清| 在线中文字幕不卡| 国产精品亚洲一区二区三区妖精| 亚洲综合色在线| 国产日韩av一区二区| 日韩一级成人av| 在线观看亚洲精品| 成人午夜在线免费| 精品中文字幕一区二区| 午夜婷婷国产麻豆精品| 亚洲男同性恋视频| 国产精品三级在线观看| 26uuu国产一区二区三区| 欧美日韩精品一区二区| 99re6这里只有精品视频在线观看| 久久er99精品| 日韩av在线播放中文字幕| 亚洲日穴在线视频| 国产精品久久毛片| 久久久久久99久久久精品网站| 91精品国产综合久久蜜臀| 欧美日韩一级大片网址| 91丝袜国产在线播放| av爱爱亚洲一区| 成人app在线观看| 懂色av中文一区二区三区| 国产一区二区不卡| 国内不卡的二区三区中文字幕| 日本午夜精品视频在线观看| 亚洲电影你懂得| 亚洲第一二三四区| 亚洲成人三级小说| 午夜精品久久久久| 日韩成人av影视| 男人的天堂亚洲一区| 日韩av高清在线观看| 日韩成人av影视| 日本不卡123| 激情综合网av| 国产精品一卡二卡在线观看| 国产一区二区不卡| 成人黄色软件下载| 91视频一区二区三区| jlzzjlzz欧美大全| 色一区在线观看| 欧美日韩精品一区二区在线播放| 欧美日韩一区精品| 7777精品久久久大香线蕉| 日韩一级在线观看| 精品国产免费久久| 国产日产欧美一区| 亚洲视频在线一区观看| 一区二区三区在线免费| 爽好久久久欧美精品| 久久精品国产亚洲高清剧情介绍| 久久99精品久久久久婷婷| 国产精品伊人色| 972aa.com艺术欧美| 欧美日韩精品欧美日韩精品 | 91福利资源站| 欧美一区二区福利在线| 久久精品日韩一区二区三区| √…a在线天堂一区| 性做久久久久久| 精品一区二区影视| www.久久久久久久久| 欧美调教femdomvk| www国产成人| 亚洲综合激情网| 黄页网站大全一区二区| 91亚洲男人天堂| 日韩免费看网站| 亚洲欧美日韩电影| 麻豆成人在线观看| 91小视频免费观看| 欧美大胆一级视频| 日韩理论片网站| 精品一区二区免费在线观看| 97精品视频在线观看自产线路二| 91精品免费在线观看| 国产精品毛片久久久久久久| 日本成人超碰在线观看| av网站一区二区三区| 日韩欧美你懂的| 亚洲在线观看免费视频| 国产一区在线不卡| 欧美剧在线免费观看网站| 国产精品视频免费看| 九九国产精品视频| 欧美午夜一区二区三区免费大片| 欧美激情一区在线观看| 麻豆精品在线观看| 欧美日韩一区二区三区四区| 亚洲国产精品ⅴa在线观看| 男女性色大片免费观看一区二区| 91美女在线视频| 欧美激情综合五月色丁香| 久久国产精品99精品国产| 欧美性高清videossexo| 中文字幕一区av| 东方aⅴ免费观看久久av| 精品国免费一区二区三区| 舔着乳尖日韩一区| 欧美综合亚洲图片综合区| ...av二区三区久久精品| 国产mv日韩mv欧美| 久久奇米777| 国产精品自拍一区| 久久人人爽人人爽| 精品乱码亚洲一区二区不卡| 国产精品短视频| 丝瓜av网站精品一区二区| 欧美性猛片xxxx免费看久爱| 亚洲欧美怡红院| 99这里都是精品| 国产精品国产自产拍高清av | 欧美午夜精品久久久久久超碰|