您尚未登录。

楼主 #1 2017-10-31 09:44:40

BugActiveDaughter
会员
注册时间: 2017-10-17
已发帖子: 118
积分: 117.5

U盘读取6M的字库,与ui线程冲突

用最新的mdk5自带所有固件,u盘读取6m大小的字库,u盘处理为独立线程,emwin显示的为一个线程,通过自己定义的ui消息,把u盘读取字库的进度条数据发给ui线程进行进度条更新,发现一个奇葩问题,u盘读取动不动卡死了,不是死机,不是u盘自动断开连接,就是u盘读取数据失败。把usb线程优先级设置比ui高,也不行,在同一个线程刷新进度条也不行。最后只好再读取时候加入delay,勉强解决这种大文件稳定性,好奇葩

while (( fread (databuf, 1, 512, filein)) != 0)
            {
                //  print (0, "\n write to nand i=%u\n",i);
                    fwrite (databuf, 1, 512, fileout );
               
                   if(++i>=filesize){
                          i=0;
                       Usb_SaveBarValue +=10;
                       print (0, "\n File size=%u Usb_SaveBarValue= %u\n",   filesize, Usb_SaveBarValue);
                 
                       SendStateToUSBDlg (MSG_BAR_VALUE+ Usb_SaveBarValue);
           
                         osDelay(10);
                    }

               
            }

离线

#2 2017-10-31 10:44:49

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,233
积分: 9197

Re: U盘读取6M的字库,与ui线程冲突

牛叉,等有空了买块 STM32F429 开发板跟楼主学学





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn