社区导航

 
查看: 3701|回复: 6

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

[复制链接]

1606

TA的帖子

4

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-1-5 19:53:54 | 显示全部楼层 |阅读模式
本帖最后由 DavidZH 于 2017-1-5 19:53 编辑

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

02.bmp

     2、添加必要的文件:
            45.png    
STemWin 文件如下:
CF.png
Fonts:
FONTS.png
lib:
LIB.png

bsp:
BSP.png
Components:
ZJ.png

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

工程配置:
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, 下载次数: 195)


回复

使用道具 举报

584

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-5 20:55:51 | 显示全部楼层


回复

使用道具 举报

1017

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-1-6 17:29:59 | 显示全部楼层
这个官方的包里没有带吗?嘿嘿

点评

没有带,自己搞搞下  详情 回复 发表于 2017-1-7 09:48
没时间解释辣么多了,快上车!!!


回复

使用道具 举报

1606

TA的帖子

4

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2017-1-7 09:48:30 | 显示全部楼层
54chenjq 发表于 2017-1-6 17:29
这个官方的包里没有带吗?嘿嘿

没有带,自己搞搞下


回复

使用道具 举报

30

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-9 09:35:38 | 显示全部楼层
需要外挂SDRAM吗?


回复

使用道具 举报

3

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2017-9-22 09:38:28 | 显示全部楼层
请教楼主!

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

但总是编译不成功,


回复

使用道具 举报

3

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

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

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



回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-15 01:10 , Processed in 0.231122 second(s), 19 queries , Gzip On, MemCache On.

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