![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
dsfa
Dependencies: dsf SDFileSystem TextLCD mbed stepper_moter
Fork of my_example_Nucleo_Ex05_SD_zhangyuxiang2 by
Diff: main.cpp
- Revision:
- 4:c88bf297ee75
- Parent:
- 3:1e51c10aa4f2
diff -r 1e51c10aa4f2 -r c88bf297ee75 main.cpp --- a/main.cpp Thu May 03 10:53:02 2018 +0000 +++ b/main.cpp Tue May 08 01:50:44 2018 +0000 @@ -1,86 +1,33 @@ #include "mbed.h" -#include "TextLCD.h" -#include "SDFileSystem.h" +#include "SDRead.h" +#include "LCDShow.h" + +QEI Choose(PB_5,PB_8, NC, 11, QEI::X2_ENCODING); +InterruptIn btn3(PA_5); //LCD显示屏 rs, e, d4-d7, model -TextLCD lcd(PC_13, PC_14, PC_15, PA_0, PA_1, PA_4, TextLCD::LCD20x4); // rs, e, d4-d7, model V4版本 - -//SD卡 mosi, miso, sclk, cs, name 用SPI端口 -SDFileSystem sd(PB_15, PB_14, PB_13, PB_12, "sd"); -Serial pc(PA_9, PA_10); //与电脑通讯的串口 +LCDShow lcd(PC_13, PC_14, PC_15, PA_0, PA_1, PA_4, TextLCD::LCD20x4); // rs, e, d4-d7, model V4版本 屏幕为4行,每行20字符(列) +SDRead sd(PB_15, PB_14, PB_13, PB_12, "sd"); -int main() { - DirHandle *dh = opendir("/sd/"); //读取SD卡中的文件列表 - if(!dh){ - pc.printf("opendir error\n"); - return 1; - } - dirent *entry; - for(;;){ - entry = dh->readdir(); - if(!entry) - break; - pc.printf("%s\r\n", entry->d_name); - } - dh->closedir(); - - // 写文件例子 - FILE *fp2 = fopen("/sd/write.txt", "w"); - if (fp2 == NULL) +int main() +{ + sd.mount(); //加注释!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + while(1) { - pc.printf("open error2!!\r\n"); - return 1; - } - pc.printf("file opened for write\r\n"); - fprintf(fp2, "hello\r\n"); - fprintf(fp2, "%d", 23333); - fclose(fp2); //写完文件要记得关闭,不然可能没保存上 - - // 读文件例子 - FILE *fp = fopen("/sd/test.txt", "r"); //打开文件,路径以“/sd/”开头 - - if (fp == NULL) //打开失败,原因可能是文件不存在,或卡没有连接好 - { - pc.printf("open error!!\r\n"); - return 1; + if(sd.Get_FileDir()) //加注释!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + { + lcd.getDir(sd.File_dir); //加注释!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + lcd.showdir();//LCD显示文件目录 + } + if(lcd.Read_file) //加注释!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + { + if(sd.Read_File(lcd.file_name.data())) + { + for(int i = 0; i < sd.Info.size(); i++)//sd.Info 就是读取到的文件信息向量 + { + printf("%s\n",sd.Info[i]); + } + } + } } - pc.printf("file opened for read\r\n"); - char buf[64]; - while (fgets(buf, sizeof(buf), fp) != NULL) //读入一行的C函数 - { - pc.printf("%s", buf); - } - fclose(fp); //关闭文件,释放资源 - - //pc.printf("card type is 0x%x\r\n" , sd.card_type()); - - return 0; - - - lcd.printf("Hello World!"); - wait_ms(1000); //等待1秒 - lcd.cls(); //清屏 - - for(int i=0; i<10000; i+=4){ - lcd.locate(0,0); //分别控制起始的列和行,从0开始 - lcd.printf("%d", i); - wait_ms(1000); //等待1秒 - - lcd.locate(0,1); - lcd.printf("%d", i+1); - wait_ms(1000); - - lcd.locate(0,2); - lcd.printf("%d", i+2); - wait_ms(1000); - - lcd.locate(0,3); - lcd.printf("%d", i+3); - wait_ms(1000); - - lcd.cls(); //清屏 - } - - - -} +} \ No newline at end of file