博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【GMT43智能液晶模块】例程十三:FATFS实验——文件操作
阅读量:4611 次
发布时间:2019-06-09

本文共 2937 字,大约阅读时间需要 9 分钟。

实验原理:

  STM32F429上带有SDIO控制器,GMT43液晶模块上将SDIO连接到TF卡座。本实验

将Micro SD卡插入TF卡座上即可。通过FATFS创建test.txt文件,并且写入数据0-255,然后

读出并显示在液晶屏上。

示例截图:

源代码下载链接:

链接: 密码:5w39

GMT43购买链接:

核心代码:

 

 

int main(void){    FRESULT res;    rcc.initialize();    ads7843.initialize();    SDRAM_Init();    SDRAM_GPIOConfig();    FMC_SDRAMWriteProtectionConfig(FMC_Bank2_SDRAM,DISABLE);    lcd_tft.initialize();    systick.initialize();    GUI_Init();    GUI_SetBkColor(GUI_BLACK);    GUI_Clear();    pwm.initialize(80);    GUI_Delay(200);    LCD_ON;    if(SD_Init() != 0){        GUI_SetColor(GUI_RED);        GUI_SetFont(&GUI_FontFixedsys16);        GUI_DispStringHCenterAt("SD Error!",480/2,272/2);        while(1);    }    res = f_mount(&fatfs,"0:",1);    if(res != RES_OK){        GUI_SetColor(GUI_RED);        GUI_SetFont(&GUI_FontFixedsys16);        GUI_DispStringHCenterAt("f_mount Error!",480/2,272/2);                while(1);    }        power_on.check_touch();    frame.process();}
static void frame_process(void){    FIL file;                                                                //文件对象    int i,j;    unsigned int counter;    GUI_CURSOR_Show();    WM_SetCreateFlags(WM_CF_MEMDEV);    GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);    sprintf(buffer,"Is to write and read\r\n");    MULTIEDIT_AddText(hItem,buffer);    memset(buffer,0,sizeof(buffer));    GUI_Exec();    f_open(&file,"0:/test.txt",FA_READ | FA_WRITE | FA_OPEN_ALWAYS);    f_lseek(&file,0);     for(i = 0;i < 512;i++){        write_buffer[i] = i % 256;    }    f_write(&file,write_buffer,512,&counter);                          //将缓冲器中的内容写入源文件        f_lseek(&file,0);                                                     //移动读指针到文件首    f_read(&file,read_buffer,512,&counter);    f_close(&file);      MULTIEDIT_SetText(hItem,buffer);                                   //上次显示的文本清空    sprintf(buffer,"Complete\r\n");    MULTIEDIT_AddText(hItem,buffer);    memset(buffer,0,sizeof(buffer));    sprintf(buffer,"write data:\r\n");    MULTIEDIT_AddText(hItem,buffer);    memset(buffer,0,sizeof(buffer));    for(i = 0;i < 64;i++){        for(j=0;j < 8;j++){            sprintf(buffer," %02X",write_buffer[i*8+j]);                MULTIEDIT_AddText(hItem,buffer);            memset(buffer,0,sizeof(buffer));        }        sprintf(buffer,"\r\n");        MULTIEDIT_AddText(hItem,buffer);        memset(buffer,0,sizeof(buffer));    }    sprintf(buffer,"read data:\r\n");    MULTIEDIT_AddText(hItem,buffer);    memset(buffer,0,sizeof(buffer));    for(i = 0;i < 64;i++){        for(j=0;j < 8;j++){            sprintf(buffer," %02X",read_buffer[i*8+j]);                MULTIEDIT_AddText(hItem,buffer);            memset(buffer,0,sizeof(buffer));        }        sprintf(buffer,"\r\n");        MULTIEDIT_AddText(hItem,buffer);        memset(buffer,0,sizeof(buffer));    }    while(1){        GUI_Exec();    }}

 

转载于:https://www.cnblogs.com/xiaomagee/p/8390549.html

你可能感兴趣的文章
HDU5950【矩阵快速幂】
查看>>
在线C++编译器
查看>>
C#中各种serialization的比较
查看>>
P2617 Dynamic Rankings
查看>>
工作学习常识1
查看>>
Eclipse插件项目中读取文件
查看>>
jquery定义链接跳转的高亮显示
查看>>
CheckListBox怎样得到多选值?
查看>>
三道题(关于虚表指针位置/合成64位ID/利用栈实现四则运算)
查看>>
Vijos P1243 生产产品 (单调队列优化DP)
查看>>
mysql 数据表操作 目录
查看>>
iOS常用第三方库 -转
查看>>
Android布局学习
查看>>
jQuery中事件绑定与解绑
查看>>
js原生Ajax的封装与使用
查看>>
周总结6
查看>>
PostgreSQL 务实应用(二/5)插入冲突
查看>>
一种公众号回复关键词机制
查看>>
java多线程入门学习(一)
查看>>
基于 Web 的 Go 语言 IDE - Wide 1.1.0 公布!
查看>>