3671|7

356

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

参加STM32F7LOL比赛的总结帖(每天晚上更新) [复制链接]

本帖最后由 ihalin 于 2015-12-23 23:59 编辑

终于把多功能测量仪项目整合完成了,只想说一句话---------好累好开心。




全选 将选中的图片保存到相册:  ------- +创建新相册





STM32F7LOL比赛终于结束了,感谢eeworld这次学习的机会。现在终于把项目整合了,最开心也是最累的就是整合,可以学习到不少知识。

前天又是四级考试又是在整合项目真是累的够呛的。不过也过来了。剩下时间就是期末考试了。
现在比赛也结束,发个总结帖总结总结自己在比赛这个过程中遇到的问题和自己如何去解决的以及还没解决的遗留问题。希望我能从今晚每晚更新总结帖


总结(一)
从拿到板子的国庆节开始吧
在国庆节的七天了就去了研究怎么移植STemWin买了本书和看官方的EMWIN的手册
emWin5.12手册:
emWin5中文手册.pdf (9.11 MB, 下载次数: 27)
帖子在我的
【stm32F7英雄联盟大赛】多功能测试仪器---------手把手教你移植EMWIN+FreeRTOS(1)
【stm32F7英雄联盟大赛】多功能测试仪器---------手把手教你移植EMWIN+FreeRTOS(2)
里面最重要的是修改GUI_config.h,GUI_config.c   lcdconfig.c下填写好底层的打点函数读点函数填充函数
还有记得修改代码分散加载需要的文件有:

这是KEIL下分散加载文件
编辑修改成; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x08000000 0x00100000  {    ; load region size_region
  ER_IROM1 0x08000000 0x00100000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20012000 0x0003C000  {  ; RW data
   .ANY (+RW +ZI)
  }
  RW_RAM1 0xC0000000 UNINIT 0x00800000  {  ; RW data
   * (VRAM, GUI_RAM, GUIDEMO_STACK)
  }
}


;LR_QSPI 0x90000000 0xFFFFFF  {
        ;ER_QSPI 0x90000000 0xFFFFFF {
        ;*.o (.ExtQSPIFlashSection)
;}
;}

可以用这个将代码加载到外部的FLASH中
然后就是移植FREERTOS我也买了本FREERTOS的书来看还有就是一PDF的手册
FREERTOS 手册资料PDF版
FreeRTOS中文实用教程.pdf (3.05 MB, 下载次数: 41) --------------------------------------------------------------------------------------------------------------201512.21晚上
接着讲移植FREERTOS除了添加基本的文件外还要记得注释到两个中断因为这两个中断已经在FREERTOS了有了
注释掉下面
/*void SVC_Handler(void)
{
}*/
//void PendSV_Handler(void)
//{
//}

还有修改SysTick中断改为
void SysTick_Handler(void)
{
  HAL_IncTick();
  if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED)
  {
    xPortSysTickHandler();
  }
}
还有就是修改PORTMACRO.H里面的数据类型
需要这些文件如图

GUI和系统移植我觉得要记录一下的就这么多,希望以后自己要用时再看看这帖子

然后接下来我是在看EMwin的API
我觉得最的重要的是要学习和搞懂他的回调机制和消息
又快断网了明天接着记录
--------------------------------------------------------2015 12  23晚
接着讲EMwin的回调机制吧
回调机制是 EmWin 的一个重要的特性和功能,WM 可在有或无回调例程(回调函数)时
使用,大多情况下最好使用回调。EmWin 为窗口和窗口对象(小工具)提供回调机制的根本
概念是一个事件驱动系统。因为在大多数窗口式系统中,其原理是控制流不仅仅是从用户程序
到图形系统,还要再通过用户程序提供的回调例程返回用户程序。此机制通常称为 “好莱坞原
则” ( “不要打电话给我们,我们会给你打电话的! ” ) ,窗口管理器需要它的主要目的是触发窗口
重绘。这与传统编程相反,但是它能利用窗口管理器的无效化逻辑。
回调例程不是必须使用的, 但是如果这样做, WM 会失去管理窗口重绘 (更新) 的能力。
也可能混合使用,例如让有些窗口使用回调,有些不使用。当然,如果窗口不使用回调机制,
则由应用程序负责更新其内容。

如果要使用回调渲染的话, 那么在调用函数 WM_CreateWindow()创建窗口之前必须先定义
一个回调函数, 然后在调用函数 WM_CreateWindow()创建窗口的时候将这个回调函数作为参数。
回调函数原型如下:
void callback(WM_MESSAGE * pMsg);


参数pMsg  指向类型 WM_MESSAGE 的数据结构指针
结构体 WM_MESSAGE 各个元素的含义如下表
-----------------------------------------------------------
数据类型  元素      描述
int   MsgId  消息类型
WM_HWIN  hWin  目标窗口
WM_HWIN  hWinSrc  源窗口
void*  Data,p  数据指针
int  Data,v  数据值
--------------------------------------------------------------------------------------------
其中消息类型MsgId
1.系统定义的消息
WM_CREATE  窗口创建后立即发送,使窗口可以初始化并创建任何子窗口。
WM_DELETE   要删除窗口前发送,告诉窗口释放其数据结构(如果有)
WM_GET_ID  发送到窗口,请求窗口的 Id
WM_INIT_DIALOG  创建对话框后立即发送到对话框窗口。
WM_KEY  按下某个键后发送到当前包含焦点的窗口。
WM_MOVE  窗口移动后立即发送到窗口。
WM_NOTIFY_PARENT  告知父窗口,其子窗口中发生了某些改变。
WM_NOTIFY_VIS_CHANGED  窗口可见性更改时发送到窗口。
WM_PAINT  窗口变为无效并应重绘时,发送到窗口。
WM_POST_PAINT  最后一条 WM_PAINT 消息处理后发送到窗口
WM_PRE_PAINT  第一条 WM_PAINT 消息发出前发送到窗口
WM_SET_FOCUS  获得或失去输入焦点时发送到窗口。
WM_SET_ID  发送到窗口以更改窗口 Id。
WM_SIZE  窗口大小更改后发送到窗口。
WM_TIMER  定时器到期后发送到窗口。
2.指针输入设备(PID) 消息
WM_MOUSEOVER  指针输入设备接触到窗口轮廓时发送到窗口,仅在启用鼠标支持时发送。
WM_MOUSEOVER_END 指针输入设备已移出窗口轮廓时发送到窗口。仅在启用鼠标支持时发送。
WM_PID_STATE_CHANGED 按下状态已更改时,发送到指针输入设备指向的窗口。
WM_TOUCH 指针输入设备接触到处于按下状态的窗口轮廓时发送到窗口。
WM_TOUCH_CHILD  指针输入设备已接触到子窗口时发送到父窗口。

3.通知代码
WM_NOTIFICATION_CHILD_DELETED此通知消息将在某窗口被删除前,从该窗口发送到其父窗口。
WM_NOTIFICATION_CLICKED  此通知消息将在点击窗口后发送。
WM_NOTIFICATION_LOST_FOCUS  此通知消息将在窗口失去焦点时发送。
WM_NOTIFICATION_MOVED_OUT  此通知消息将在指针移出窗口并点击时发送。
WM_NOTIFICATION_RELEASED此通知消息将在被点击的小工具已被释放时发送。
WM_NOTIFICATION_SCROLL_CHANGED此通知消息将在附加的 SCROLLBAR(滚动条)小工具的滚动位置更改时发送。
WM_NOTIFICATION_SCROLLBAR_ADDED 此通知消息在将
WM_NOTIFICATION_SEL_CHANGED  此通知消息将在小工具选择已更改时发送。
WM_NOTIFICATION_VALUE_CHANGED此通知消息将在小工具的特定值已更改时发送。
4.用户定义的消息
WM_USER
应用程序可使用 WM_USER 常数来定义私人消息,通常形式为 WM_USER+X,其中 X 为整数值。
----------------------------------------------------

上面这些都是MsgId 可以为的值,用到较多的是WM_PAINT重绘窗口还有一个特别好用的WM_TIMER 定时器消息可以定时给窗口命令比如可以用他定时来重绘窗口
使用WM_CreateTimer(,,,);这个函数来生成定时器,还有用WM_NOTIFY_PARENT 来检测窗口上的小工具是否发生改变,比如来检测BUTTON是否被点击按了。
小工具也是一个窗口。
----------------------2015.12.23晚上

P51221-222325-002.jpg (1.12 MB, 下载次数: 0)

P51221-222325-002.jpg
此帖出自stm32/stm8论坛

最新回复

界面酷炫!整体好棒  详情 回复 发表于 2015-12-22 11:59

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

862

帖子

2

TA的资源

纯净的硅(初级)

沙发
 
赞一个,界面很炫。
我看到了双轮平衡车!!!!
此帖出自stm32/stm8论坛
 
个人签名水不撩不知深浅 人不拼怎知输赢
 

回复

9803

帖子

24

TA的资源

版主

板凳
 
界面都是LOL风格的吗?帅呆了。
此帖出自stm32/stm8论坛
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 

回复

1万

帖子

2853

TA的资源

管理员

4
 
太棒啦!!坚持下来不容易!这个界面有点霸气呀
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

回复

1万

帖子

24

TA的资源

版主

5
 
很不错,挺实用的功能。如果进一步完善和开源,相信会超过STM32F429那个示波器项目的。
此帖出自stm32/stm8论坛
 
 
 

回复

606

帖子

1

TA的资源

一粒金砂(中级)

6
 
这界面亮了
此帖出自stm32/stm8论坛
 
个人签名疏雨客晚归,荒烟乱,几许江南无晴!又落花,残香织梦,莫  莫  莫,白首衷肠……
 
 

回复

64

帖子

1

TA的资源

一粒金砂(中级)

7
 
niubility
此帖出自stm32/stm8论坛
 
 
 

回复

300

帖子

0

TA的资源

一粒金砂(高级)

8
 
界面酷炫!整体好棒
此帖出自stm32/stm8论坛
 
个人签名世间万物皆系于一键之上~
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表