打印
[应用相关]

使用STM32CUBMX生成TouchGFX工程

[复制链接]
498|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
实验平台:
硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480)
软件: 最新版本的STM32CubeH7固件库,TouchGFXDesigner v4.15和 STM32CubeMX V6.0.1,开发环境MDK v5.29



使用特权

评论回复
沙发
guanjiaer|  楼主 | 2021-7-3 10:00 | 只看该作者
本帖最后由 guanjiaer 于 2021-7-3 10:01 编辑

从零开始创建TouchGFX UI项目选择MCU型号(STM32H750XBH6)




使用特权

评论回复
板凳
guanjiaer|  楼主 | 2021-7-3 10:00 | 只看该作者
本帖最后由 guanjiaer 于 2021-7-3 10:02 编辑

选择和配置组件(系统、外设、中间件)

系统需要

RCC




使用特权

评论回复
地板
guanjiaer|  楼主 | 2021-7-3 10:01 | 只看该作者

SYS

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
5
guanjiaer|  楼主 | 2021-7-3 10:02 | 只看该作者
GUI功能需要

I2C

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
6
guanjiaer|  楼主 | 2021-7-3 10:02 | 只看该作者

FMC

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
7
guanjiaer|  楼主 | 2021-7-3 10:02 | 只看该作者
在主程序中添加SDRAM的初始化代码:

#define REFRESH_COUNT        677
#define SDRAM_TIMEOUT                            ((uint32_t)0xFFFF)
#define SDRAM_MODEREG_BURST_LENGTH_1             ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_LENGTH_2             ((uint16_t)0x0001)
#define SDRAM_MODEREG_BURST_LENGTH_4             ((uint16_t)0x0002)
#define SDRAM_MODEREG_BURST_LENGTH_8             ((uint16_t)0x0004)
#define SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL      ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_TYPE_INTERLEAVED     ((uint16_t)0x0008)
#define SDRAM_MODEREG_CAS_LATENCY_2              ((uint16_t)0x0020)
#define SDRAM_MODEREG_CAS_LATENCY_3              ((uint16_t)0x0030)
#define SDRAM_MODEREG_OPERATING_MODE_STANDARD    ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE     ((uint16_t)0x0200)
void MX_SDRAM_InitEx(void)
{
  __IO uint32_t tmpmrd = 0;

  /* Step 1: Configure a clock configuration enable command */
  Command.CommandMode            = FMC_SDRAM_CMD_CLK_ENABLE;
  Command.CommandTarget          =  FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 1;
  Command.ModeRegisterDefinition = 0;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);

  /* Step 2: Insert 100 us minimum delay */
  /* Inserted delay is equal to 1 ms due to systick time base unit (ms) */
  HAL_Delay(1);

  /* Step 3: Configure a PALL (precharge all) command */
  Command.CommandMode            = FMC_SDRAM_CMD_PALL;
  Command.CommandTarget          = FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 1;
  Command.ModeRegisterDefinition = 0;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);  

  /* Step 4: Configure an Auto Refresh command */
  Command.CommandMode            = FMC_SDRAM_CMD_AUTOREFRESH_MODE;
  Command.CommandTarget          = FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 4;
  Command.ModeRegisterDefinition = 0;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);

  /* Step 5: Program the external memory mode register */
  tmpmrd = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_4          |\
                     SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL   |\
                     SDRAM_MODEREG_CAS_LATENCY_2           |\
                     SDRAM_MODEREG_OPERATING_MODE_STANDARD |\
                     SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;

  Command.CommandMode            = FMC_SDRAM_CMD_LOAD_MODE;
  Command.CommandTarget          = FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 1;
  Command.ModeRegisterDefinition = tmpmrd;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);

  /* Step 6: Set the refresh rate counter */
  /* Set the device refresh rate */
  HAL_SDRAM_ProgramRefreshRate(&hsdram1, REFRESH_COUNT);
}


使用特权

评论回复
8
guanjiaer|  楼主 | 2021-7-3 10:03 | 只看该作者

QUADSPI

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
9
guanjiaer|  楼主 | 2021-7-3 10:03 | 只看该作者

DMA2D

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
10
guanjiaer|  楼主 | 2021-7-3 10:03 | 只看该作者

LCDC
LTDC基本参数设置

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
11
guanjiaer|  楼主 | 2021-7-3 10:03 | 只看该作者
Layer参数设置


使用特权

评论回复
12
guanjiaer|  楼主 | 2021-7-3 10:03 | 只看该作者

CRC

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
13
guanjiaer|  楼主 | 2021-7-3 10:03 | 只看该作者

NVIC

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
14
guanjiaer|  楼主 | 2021-7-3 10:04 | 只看该作者
中间件需要

基本参数配置

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
15
guanjiaer|  楼主 | 2021-7-3 10:04 | 只看该作者

任务和队列



使用特权

评论回复
16
guanjiaer|  楼主 | 2021-7-3 10:04 | 只看该作者

TouchGFX软件包

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
17
guanjiaer|  楼主 | 2021-7-3 10:04 | 只看该作者
应用层需要

UART
UART4

[color=rgba(0, 0, 0, 0.75)]


使用特权

评论回复
18
guanjiaer|  楼主 | 2021-7-3 10:04 | 只看该作者
配置时钟树



使用特权

评论回复
19
guanjiaer|  楼主 | 2021-7-3 10:04 | 只看该作者
本帖最后由 guanjiaer 于 2021-7-3 10:06 编辑

设置工程并生成工程



使用特权

评论回复
20
guanjiaer|  楼主 | 2021-7-3 10:05 | 只看该作者
本帖最后由 guanjiaer 于 2021-7-3 10:06 编辑

执行TouchGFX Designer



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

3886

帖子

2

粉丝