9326|7

1706

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

【STM32F769评测软件篇四】-- STM32F7结合CUBEMX移植STemWin(无系统) [复制链接]

本帖最后由 DavidZH 于 2017-1-5 19:53 编辑

          emWin 是ST公司主推的一款GUI为大家所熟悉,CUBEMX也是ST公司主推的图像化软件,使用方便;以下为囫囵吞枣式移植STemWin也就是在现有的工程的文件下移植出显示效果;
       1、CUBEMX 建议STM32F769Discovery 的工程;
                   需要注意点如下:
                               A:堆栈大小不能太小; 否则编译显示存在问题;
                               B: 开启Cache;




     2、添加必要的文件:
               
STemWin 文件如下:

Fonts:

lib:


bsp:

Components:


     以上所需文件全部添加到工程,并添加相应的头文件路径;

工程配置:
1、系统宏:

  1. USE_HAL_DRIVER,STM32F769xx,USE_STM32F769I_DISCO,
  2.   __CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING,__FPU_PRESENT=1,
复制代码

2、修改GUIConfig.c 中的宏定义,不能太大,否则存在问题;
  1. #define GUI_NUMBYTES  (1024) *100
复制代码


3、修改LCDConf_CmdMode_TE.c中的BUFFER地址:
  1. #define LCD_LAYER0_FRAME_BUFFER  ((uint32_t)0xC0020000)  
  2. #define LCD_LAYER1_FRAME_BUFFER  ((uint32_t)0xC0020000)
复制代码


4、修改GUIConf.h 支持触摸和系统;
  1. #define GUI_NUM_LAYERS            3    // Maximum number of available layers
  2. #define GUI_OS                   (0)
  3. #define GUI_SUPPORT_TOUCH         (1)  // Support touchscreen
复制代码


5、修改stm32f7xx_it.c
  1. #include "stm32f7xx_hal.h"
  2. #include "stm32f7xx_it.h"
  3. #include "main.h"
  4. #include "GUI.h"


  5. extern volatile GUI_TIMER_TIME OS_TimeMS;
  6. extern LTDC_HandleTypeDef hltdc_disco;  
  7. extern TIM_HandleTypeDef TimHandle;


  8. void SysTick_Handler(void)
  9. {
  10.   HAL_IncTick();
  11.   HAL_SYSTICK_IRQHandler();
  12.         OS_TimeMS++;
  13. }


  14. void TIM3_IRQHandler(void)
  15. {
  16.    HAL_TIM_IRQHandler(&TimHandle);
  17. }


  18. void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
  19. {
  20.   /*##-1- Enable peripherals and GPIO Clocks #################################*/
  21.   /* TIMx Peripheral clock enable */
  22.   __HAL_RCC_TIM3_CLK_ENABLE();

  23.   /*##-2- Configure the NVIC for TIMx #########################################*/
  24.   /* Set the TIMx priority */
  25.   HAL_NVIC_SetPriority(TIM3_IRQn, 0, 1);
  26.   
  27.   /* Enable the TIMx global Interrupt */
  28.   HAL_NVIC_EnableIRQ(TIM3_IRQn);
  29. }



  30. void LTDC_IRQHandler(void)
  31. {
  32.   HAL_LTDC_IRQHandler(&hltdc_disco);
  33.         
  34. }
复制代码


6、修改main.h:


  1. /* Define to prevent recursive inclusion -------------------------------------*/
  2. #ifndef __MAIN_H
  3. #define __MAIN_H

  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7.    
  8. /* Includes ------------------------------------------------------------------*/
  9. #include "stm32f7xx_hal.h"
  10. #include "stm32f7xx_it.h"

  11. /* EVAL includes component */
  12. #include "stm32f769i_discovery.h"     
  13. #include "stm32f769i_discovery_sdram.h"
  14. #include "stm32f769i_discovery_ts.h"
  15. #include "stm32f769i_discovery_qspi.h"
  16.    

  17. #include "gui.h"
  18. #include "dialog.h"



  19. #include <stddef.h>
  20. #include <stdlib.h>
  21. #include <string.h>
  22. #include <math.h>
  23.    
  24. /* Exported types ------------------------------------------------------------*/
  25. /* Exported variables --------------------------------------------------------*/
  26. /* Exported constants --------------------------------------------------------*/
  27. #ifdef INCLUDE_THIRD_PARTY_MODULE
  28. #define DEMO_HOME_ADDRESS           0x08000000   
  29. #define DEMO_TGFX_ADDRESS           0x08100000
  30. #define DEMO_EWIZ_ADDRESS           0x08180000   
  31. #define DEMO_HOME_SIGNATURE         0x5AA55BBB
  32. #define DEMO_TGFX_SIGNATURE         0x5AA55AAA
  33. #define DEMO_EWIZ_SIGNATURE         0x5AA55CCC
  34. #define DEMO_SIGNATURE_LOCATION     0x40024000
  35. #endif   
  36. /* Exported macros -----------------------------------------------------------*/
  37. /* Exported functions ------------------------------------------------------- */
  38. void CleanDisplay (uint32_t address);

  39. #ifdef __cplusplus
  40. }
  41. #endif

  42. #endif /* __MAIN_H */

  43. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
复制代码


7、修改main.c:
  1. int main(void)
  2. {
  3.         
  4.         MPU_Config();
  5.   SCB_EnableICache();
  6.   SCB_EnableDCache();
  7.   HAL_Init();
  8.   SystemClock_Config();

  9.         BSP_SDRAM_Init();
  10.         __HAL_RCC_CRC_CLK_ENABLE();
  11.         
  12.         Touch_Timer_Init();     //定时器触摸
  13.         
  14.         
  15.         //emWin 测试:
  16.         GUI_Init();
  17.         
  18.         BSP_TS_Init(800, 480);
  19.         
  20.         GUI_Initialized = 1;
  21.         GUI_SetBkColor(GUI_RED);
  22.   GUI_Clear();
  23.         
  24.         GUI_SetFont(&GUI_Font32_1);
  25.         GUI_DispString ("Welcome To WWW.eeboard.com ");
  26.         
  27.         //GUIDEMO_Main();
  28.   while (1)
  29.   {
  30.   

  31.   }
  32.   

  33. }
复制代码
然后编译下载即可;

效果如下:


工程如下:
STM32F7emWin.zip (11.25 MB, 下载次数: 526)


此帖出自stm32/stm8论坛

最新回复

楼主有联系方式吗 我这里 qq 1290383802  详情 回复 发表于 2019-4-1 12:05
点赞 关注(3)
 

回复
举报

1239

帖子

68

TA的资源

纯净的硅(中级)

沙发
 
此帖出自stm32/stm8论坛
 
 

回复

1310

帖子

3

TA的资源

一粒金砂(高级)

板凳
 
这个官方的包里没有带吗?嘿嘿
此帖出自stm32/stm8论坛

点评

没有带,自己搞搞下  详情 回复 发表于 2017-1-7 09:48
 
个人签名

RTEMS

 

回复

1706

帖子

4

TA的资源

纯净的硅(初级)

4
 
54chenjq 发表于 2017-1-6 17:29
这个官方的包里没有带吗?嘿嘿

没有带,自己搞搞下
此帖出自stm32/stm8论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

5
 
需要外挂SDRAM吗?
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

6
 
请教楼主!

我下载您的项目,提取STM32CubeMX工程文件。先生成Keil MDK项目,再添加STemWin的文件,再再keil mdk编译环境下为项目文件增加文件与路径。

但总是编译不成功,
此帖出自stm32/stm8论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

7
 
      已经参考楼主的工程文件及说明成功的进行了移植,花费了我好几天时间。 看了一些STemWin的教程,它们的建议是“对于初学者,STemWin的移植不是必须先学的”。但是我觉得通过亲自移植才能搞清楚项目体系和硬件体系,也才能使得基本应用在目标系统上跑起来,在学习和开发过程中做到心里有底。尤其是对于像我这种一个人搞定硬件和软件的人来说,移植必须完成的工作。与其晚弄,不如早弄。

    ST的工具软件(CubeMX)和库不断更新,楼主的东西拿来不能直接用。通过敲敲打打,仔细分析分解目录和结构,添加必要的文件和头文件,才能使用。

此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
楼主有联系方式吗
我这里
qq 1290383802
此帖出自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
快速回复 返回顶部 返回列表