OpenEdv-开源电子网

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

战舰V3 开发板 emwin 显示更新

[复制链接]

7

主题

20

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-4-16
在线时间
15 小时
发表于 2016-4-16 08:56:32 | 显示全部楼层 |阅读模式
2金钱
在战舰V3开发板上做  EMWIN实验15 BUTTON使用   实验,
增加了一个EDIT 小工具,想用它来显示硬件的运算结果(信号计数,信号计时之类的数值)
我在窗口的回调函数中增加显示代码如下:
     case WM_PAINT:
            hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1);
            EDIT_SetValue(hItem,tim);
           LED1=~LED1;       
           WM_DefaultProc(pMsg);
     break;

原后由定时器3中数发送重画消息,但发送消息后立即死机,代码如下:
void TIM3_IRQHandler(void)
{
                WM_MESSAGE MyMessage;
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)
        {       
                if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  
                {
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );
                LED1=!LED1;
                        tim++;
                        MyMessage.MsgId = WM_PAINT;
                        WM_SendMessage(hWin,&MyMessage);
                }
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}


请教问题在哪,更者还有什么方法去刷新显示数值?
()之前有测试过,在窗口的回调函数中发送WM_PAINT消息给自已,程序是可以正常显示的,但我需要的是硬件触发刷新)


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

20

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-4-16
在线时间
15 小时
 楼主| 发表于 2016-4-16 09:17:27 | 显示全部楼层
我也试了发送WM_USER消息,但回调函数接收不到,
还试了,做了一个定时器,想定时刷新,但回调函数还是收不到时间到达的消息,
快崩溃,emwin这么难整,出了问题也不知道怎样去调试
回复

使用道具 举报

7

主题

20

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-4-16
在线时间
15 小时
 楼主| 发表于 2016-4-16 09:56:19 | 显示全部楼层
找到了一个方法去刷屏了,在定时器中断中用 WM_InvalidateWindow(hWin);
把窗口无效,然后由系统去发 WM_PAINT 消息,虽然这个问题可以绕过去了,但是我为什么自已发消息不成功,
发WM_PAINT就死机,发WM_USER就收不到?
第一次用GUI,望老师们多多指教!
回复

使用道具 举报

7

主题

20

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-4-16
在线时间
15 小时
 楼主| 发表于 2016-4-16 14:34:30 | 显示全部楼层
今天星期六,都不上班?
做这一行全部双休的?看来我太OUT 了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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