打印
[STM32F7]

STM32F769I-DISCO评测(9)IAR快速移植STemwin

[复制链接]
2214|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

STemWin是SEGGER公司授权给ST(意法半导体)的。使用ST芯片的用户可以免费使用STemWin。

下F7的CUBE中就有STemWin的目录
我的在F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Middlewares\ST\STemWin


先建立两个工程子目录:

GUI_CONFIG
GUI_LIB



得用个能显示图片的例程就选上次的JPEG,这样图像初始化就省下了
工程路径:
F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Projects\STM32F769I-Discovery\Examples\JPEG\JPEG_DecodingUsingFs_DMA


在GUI_LIB子目录中加入库文件:

STemWin532_CM7_IAR.a
路径:F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Middlewares\ST\STemWin\Lib


在GUI_CONFIG中加入如下:
STM32769I_DISCO_STemWin_Addons_IAR.a
路径F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Projects\STM32F769I-Discovery\Demonstration\STemWin_Addons
GUI_X.c
路径F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Projects\STM32F769I-Discovery\Demonstration\Config
GUIConf.c
路径F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Projects\STM32F769I-Discovery\Demonstration\Config
LCDConf_CmdMode_TE.c
路径:F:\360Downloads\STM32Cube_FW_F7_V1.5.0\Middlewares\ST\STemWin\OS

加完后的情况如下图:


然后在MAIN.c中修改下显示的内容:
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32F769i_discovery.h"
#include "stm32F769i_discovery_ts.h"
#include "GUI.h"
/** @addtogroup STM32F7xx_HAL_Examples
  * @{
  */

/** @addtogroup JPEG_DecodingUsingFs_DMA
  * @{
  */

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#if (JPEG_RGB_FORMAT == JPEG_ARGB8888)
  #define BYTES_PER_PIXEL 4  /* Number of bytes in a pixel */
#elif (JPEG_RGB_FORMAT == JPEG_RGB888)
  #define BYTES_PER_PIXEL 3  /* Number of bytes in a pixel */
#elif (JPEG_RGB_FORMAT == JPEG_RGB565)
  #define BYTES_PER_PIXEL 2  /* Number of bytes in a pixel */
#else
  #error "unknown JPEG_RGB_FORMAT "
#endif /* JPEG_RGB_FORMAT */
/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/
FATFS SDFatFs;  /* File system object for SD card logical drive */
char SDPath[4]; /* SD card logical drive path */
FIL JPEG_File;  /* File object */

uint32_t JpegProcessing_End = 0;
static uint32_t LCD_X_Size = 0;

JPEG_HandleTypeDef    JPEG_Handle;

static DMA2D_HandleTypeDef    DMA2D_Handle;
static JPEG_ConfTypeDef       JPEG_Info;

/* Private function prototypes -----------------------------------------------*/
static void SystemClock_Config(void);
static void LCD_BriefDisplay(void);
static void LCD_FileErrorDisplay(void);
static void DMA2D_CopyBuffer(uint32_t *pSrc, uint32_t *pDst, uint16_t x, uint16_t y, uint16_t xsize, uint16_t ysize);
static void CPU_CACHE_Enable(void);



extern void LCD_SetUpdateRegion(int idx);
extern void LCD_ReqTear(void);
extern void DSI_IRQHandler(void);
/* Private functions ---------------------------------------------------------*/


/**
  * [url=home.php?mod=space&uid=247401]@brief[/url]  Main program
  * @param  None
  * @retval None
  */
int main(void)
{
  uint32_t xPos = 0, yPos = 0;
  uint8_t  lcd_status = LCD_OK;
  
  /* Enable the CPU Cache */
  CPU_CACHE_Enable();

  /* STM32F7xx HAL library initialization:
       - Configure the Flash ART accelerator on ITCM interface
       - Systick timer is configured by default as source of time base, but user
         can eventually implement his proper time base source (a general purpose
         timer for example or other time source), keeping in mind that Time base
         duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and
         handled in milliseconds basis.
       - Set NVIC Group Priority to 4
       - Low Level Initialization
     */
  HAL_Init();
  
  /* Configure the system clock to 200 MHz */
  SystemClock_Config();

  /* Initialize the LED1 (Red LED , set to On when error) */
  BSP_LED_Init(LED1);

  /*##-1- JPEG Initialization ################################################*/   
  /* Init The JPEG Look Up Tables used for YCbCr to RGB conversion   */    /* Init The JPEG Color Look Up Tables used for YCbCr to RGB conversion   */
  JPEG_InitColorTables();

   /* Init the HAL JPEG driver */
  JPEG_Handle.Instance = JPEG;
  HAL_JPEG_Init(&JPEG_Handle);  

  /*##-2- LCD Configuration ##################################################*/  
  /* Initialize the LCD   */
  lcd_status = BSP_LCD_Init();
  if(lcd_status != LCD_OK)
  {
    OnError_Handler();
  }
  
   
         __HAL_RCC_CRC_CLK_ENABLE();
         __HAL_RCC_BKPSRAM_CLK_ENABLE();
        GUI_Init();
      
  GUI_SetLayerVisEx (1, 0);
  GUI_SelectLayer(0);
  GUI_SetBkColor(GUI_BLUE);
  GUI_Clear();
  GUI_DispStringAt(" STM32F769I Discovery",60,40);
  GUI_SetFont(&GUI_Font32B_ASCII);
  GUI_DispStringAt("Hello world! www.21ic.com", 0, 180);
   GUI_SetFont(&GUI_FontD48);
  GUI_DispStringAt("1234567890", 0, 250);
  /* Infinite loop */
  while (1)
  {
  }
}



最后运行的结果如下:




到此在IAR上STemwin移植成功,至于更多功能,得慢慢体验了。
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6950

帖子

67

粉丝