求助,W25QXX_Write函数怎么不能写?

2019-07-20 04:34发布

各位道友:
     基于官方的W25QXX_Write函数和官方的767开发板,写了一个保存参数的函数,如下:
#define PARA_Sector 3072//
#define SEC_SIZE 4096//页大小

void SAVE_PARA(void)
{                                    // 参数结构起始地址           固定宏定义                         结构大小,306字节
        W25QXX_Write((u8 *)&ParaMsg.SaveFlag,     PARA_Sector*SEC_SIZE,        sizeof(struct PARAMSG));
}
   仅修改参数结构提ParaMsg内的一个累加计数,读出-》加1-》写入(SAVE_PARA)这种,就是为了测试保存是否成功,基于ucos+emwin开发,在初始化阶段,创建窗口以前调用成功率100%,只要创建了窗口在调用,几乎不会成功。但是跟踪也没见异常。能指点一下不?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
andiwxz
2019-07-20 12:23
本帖最后由 andiwxz 于 2018-12-13 09:22 编辑

谢谢原子哥提醒,能再给一些具体的指点吗?之前我怀疑是任务栈,但是由1024加到4096也不行,但是测试时发现另外一个规律,我把保存功能固定封装在了任务的循环里,设置了一个触发条件来启动,目的是减小不同位置调用有差别。假设开机我就保存一次,再去操作界面去保存,都能成功,如果开机时不保存,直接操作界面去保存,就不成功,这个现象反复验证过了,难道开机有注册?没找到啊!继续查找中。我实在STM32F767开发板3,扩展例程3,EMWIN扩展例程EMWIN实验37 GIF图片显示   的例程基础上修改的,ucos、emwin、W25QXX都是自带,没做过修改的,仅是增加了很多界面

一周热门 更多>