硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1693|回复: 4
收起左侧

[emWin] 打算做一个进度条,没有操作系统,怎么把循环i值传递出来?

[复制链接]

11

主题

24

回帖

93

积分

初级会员

积分
93
发表于 2017-10-27 09:03:13 | 显示全部楼层 |阅读模式
这是一个把U盘中的图片导入到SPI  FLASH中的函数,我想把循环的i值赋值给进度条,但是没有操作系统,这个i值怎么才能传递出来呢?
目前烧写速度大概13秒左右完成。


u8 stdBMP_decode(u8 *filename,s32 *nFile)                        
{
    u8 res;
    u16 br;
    FIL* f_BMP;
    char FileName_group[15]="2:/";
    u16 temp;
    u16 i;
   
    temp=stufatfs.fileInfo[select1-1].fsize/4096;
    temp+=1;
   
    f_BMP=& f_bfile;
    MyStr_cat(FileName_group,filename);
    res=f_open(f_BMP,FileName_group,FA_OPEN_EXISTING | FA_READ);
   
    if(res==0)
    {
        for(i=0;i<temp;i++)
        {
            memset(BMPpreadbuf,0,sizeof(BMPpreadbuf));
            f_read(f_BMP, BMPpreadbuf,4096,(UINT*)&br);

            W25QXX_Write(BMPpreadbuf,i*4096,4096);
            bsp_DelayMS(5);
        }
    }
    f_close(f_BMP);
  return res;
}
we.PNG
回复

使用道具 举报

11

主题

24

回帖

93

积分

初级会员

积分
93
 楼主| 发表于 2017-10-27 09:05:28 | 显示全部楼层
我看了安富莱的进度条例程是定时器刷新的,但是我文件系统的话f_read读取位置指针是自增的,如果不循环的话我自己控制读取位置能实现吗?
回复

使用道具 举报

11

主题

24

回帖

93

积分

初级会员

积分
93
 楼主| 发表于 2017-10-27 09:06:13 | 显示全部楼层
求大神帮忙啊
回复

使用道具 举报

11

主题

24

回帖

93

积分

初级会员

积分
93
 楼主| 发表于 2017-10-27 13:27:36 | 显示全部楼层
看了官方例程已经搞定了[s:140]
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115749
QQ
发表于 2017-10-28 01:27:09 | 显示全部楼层
不好意思楼主,没有及时回复你。
将你的文件总大小设置为进度条的总数值,当前已经写入大小设置为当前进度条数值即可,你这里可以直接在这个函数里面调用进度条的API函数。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-15 23:41 , Processed in 0.402656 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表