在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程 李开复口误?大数据时代,我们的隐私真的安全吗? 下一代数据和AI驱动的营销:大数据平台结构化数据占15%左右-可下载 午报 | 大数据杀熟行为下月明令禁止;比亚迪成为苹果新iPad代工方 「全球程序员节」长安计算唐欣:自主计算机整机带动陕西信息产业 通信行业2020年中报总结:Q2整体环比改善,光器件、物联网与IDC表现突出,维持“增持”评级 Best Efforts 1PC 跨库事务 LeetCode-579、查询员工的累计薪水,601、体育馆的人流量 为啥不推荐uuid作为Mysql的主键呢 手把手教学:linux下oracle升级至11.2.0.4 数据库专题——深入理解count(*)为什么这么慢 Linux中MySQL数据库的使用④-----常用查询语句、常用函数 mysql备份与恢复:完全备份,增量备份,基于位置点恢复,基于时间点恢复 MySQL数据库的编译安装过程 《MySQL 入门教程》第 28 篇 字符集与排序规则 PHP面试技巧 之 职场暗语知多少?! [Dubox]实测。还是原来的配方,还是一样的味道! 【剑指金九银十】程序员,如何做到不惑?(附四面拿到字节跳动offer全过程) 超厉害的阿里技术读物,1500页超全计算机系统底层解析宝典 【融中财经早报9.16】大数据杀熟行为10月1日起明令禁止 大数据时代,机器学习算法该如何升级? 怎么判断自己是否适合做程序员 一分钟告诉你什么是区块链 一个时代一个机会,DeFi的起点X-DeFi,如何玩转X-DeFi? RTX3080显卡已被用于挖矿!映众辟谣:工程师测试散热 2020-09-15 比特币相当于房地产,怎样利用比特币获得流动现金? 区块链安全事件与代码审计 fisco bcos solidity销毁合约,删除合约的方法 Linux 中 Golang 的安装和环境配置 Golang interface{} 转换为某个结构体 区块链知识系列 - Raft 共识 OpenHarmony开发者文档开源计划,快快加入吧 融合创新提升服务,大数据搭建信息网 长三角税收一体化按下“快进键” 河钢集团与海尔集团签署物联网生态战略合作协议 1一个拥有万物互联神话,让我们看物联网是如何蓬勃发展的? 重庆大数据产业研究院成立,首批专家服务团名单公布 百分点大数据技术团队:互联网舆情系统的架构实践 水泥大数据研究院郑建辉:四季度水泥价格仍有望冲击去年高位 中国物联网与绿色智慧城市发展论坛召开 欧普照明点亮智慧道路之光 Android & Kotlin:Retrofit + Hilt 实现 看妹子app Android - 控件抖动效果 DevEco studio 一直加载gradle android如何获取调试版及发布版安全码SHA1 Android手机获取IP地址的两种方法 Android Activity 启动过程详解(上) 思维破局:挣钱其实没那么难,关键是方式要对 大数据赋能全产业链 为市民提供“一杯好奶” 运用大数据实现节能减排精准化 2020最新拼多多Java面试版,五面拿到28K的Offer
您的位置:首页 >物联网 >

在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程

目录

在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程 在ART-Pi H750上移植TouchGFX(二)——制作MDK的外部QSPI-FLASH烧录算法 在ART-Pi H750上移植TouchGFX(三)——移植TouchGFX到RT-Thread系统 在ART-Pi H750上移植TouchGFX(四)——使用RT-Thread Studio移植TouchGFX 在ART-Pi H750上移植TouchGFX(五)——制作ST-LINK的外部QSPI-FLASH烧录算法

实验平台:

硬件: RT-Thread官方ART-PI H750开发版,正点原子4.3寸RGBLCD屏(800*480) 软件: 最新版本的STM32CubeH7固件库,TouchGFXDesigner v4.14和 STM32CubeMX V6.0.1,开发环境MDK v5.29 在这里插入图片描述

代码下载:

CSDN:

联系作者:

关注公众号,免费查看,回复“加群”,加入技术交流群 在这里插入图片描述

从零开始创建TouchGFX UI项目

选择MCU型号(STM32H750XBH6)

在这里插入图片描述

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

在这里插入图片描述

系统需要

RCC

SYS

GUI功能需要

I2C

FMC

在主程序中添加SDRAM的初始化代码:

#define REFRESH_COUNT677#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); }

QUADSPI

DMA2D

LCDC LTDC基本参数设置

Layer参数设置 在这里插入图片描述 CRC

NVIC

中间件需要

基本参数配置

任务和队列

在这里插入图片描述 TouchGFX软件包

应用层需要

UART UART4

配置时钟树

在这里插入图片描述 在这里插入图片描述

设置工程并生成工程

在这里插入图片描述 在这里插入图片描述

执行TouchGFX Designer

在这里插入图片描述 在这里插入图片描述

测试TouchGFX显示基本UI

在这里插入图片描述

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。