OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6029|回复: 5

emwin中写完stm32内部flash后对话框不断弹出的问题!!

[复制链接]

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2014-12-5
在线时间
2 小时
发表于 2014-12-18 15:51:18 | 显示全部楼层 |阅读模式
5金钱
    本人用stm32内部flash保存200字节的参数,点击保存按钮,回调函数中先写flash,然后关闭对话框,为嘛关闭过后本对话框一直弹出又关闭??
    用的是原子哥的flash读写代码!    把回调函数中先flash操作去掉就正常!
    
    会不会是写flash操作影响了emwin的内部信号?
    保存按钮回调函数如下:

[mw_shl_code=c,true]#define FLASH_SAVE_ADDR    0x0807F000  //103ve 最后4K,起始地址(必须为偶数)  0X0803 0000 #define STM32_FLASH_SIZE 512 //所选STM32的FLASH容量大小(单位为K) #define STM32_FLASH_WREN 1              //使能FLASH写入(0,不是能;1,使能) #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址 [/mw_shl_code] [mw_shl_code=c,true]#define DB1 20 #define LEN1 20//*2 #define EDIT_NUM 5 // >4出错!! #define buffsize 300 //buffsize>LEN1*2*EDIT_NUM static void OnSaveReleased(WM_MESSAGE * pMsg) //按钮回调函数 { WM_HWIN hWin = pMsg->hWin; char buff[buffsize]={0}; uint8_t i; for(i=0;i<EDIT_NUM;i++){ //i<10!! EDIT_GetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0+i), buff+LEN1*2*i,LEN1*2); } STMFLASH_Write(FLASH_SAVE_ADDR+DB1,(u16*)buff,LEN1*EDIT_NUM); //*2 写flash200字节! //delay_ms(100); memset(buff,0,buffsize*sizeof(char)); STMFLASH_Read (FLASH_SAVE_ADDR+DB1,(u16*)buff,LEN1*EDIT_NUM); USART3_SendString((uint8_t*)"\r\nSaved dataN:"); for(i=0; i<EDIT_NUM; i++){ USART3_SendString((uint8_t*)"\r\n "); USART3_SendString(buff+LEN1*2*i); } WM_SetFocus(hWin0); //焦点切换回主界面 GUI_EndDialog(hWin1, 0);//关闭本对话框 } [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

回复【4楼】正点原子: --------------------------------- 找到原因了,原来Flash写操作先关中断再开,导致键盘的中断处理紊乱! 但是问题还是没有解决。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2014-12-5
在线时间
2 小时
 楼主| 发表于 2014-12-18 15:51:19 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
找到原因了,原来Flash写操作先关中断再开,导致键盘的中断处理紊乱! 但是问题还是没有解决。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-12-18 23:08:29 | 显示全部楼层
仿真找下问题吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2014-12-5
在线时间
2 小时
 楼主| 发表于 2014-12-19 09:53:01 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
现在把关闭函数GUI_EndDialog(hWin1, 0);去掉,对话框不弹了,但是按钮回调函数不断执行,串口不断打印数据,也就是说保存按钮被反复的按下了,为啥呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-12-19 23:01:45 | 显示全部楼层
回复【3楼】大阿哥:
---------------------------------
这个我不怎么熟,只能帮顶了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2014-12-5
在线时间
2 小时
 楼主| 发表于 2014-12-23 14:41:39 | 显示全部楼层
呃,到底有没有人知道呀?
我现在只能把写flash放在GUI外面使用才能正常。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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