STM32 CubeMX 无法将 STM32H7 的最大 CPU 频率设置为 480 MHz
使用STM32CUBMX5.6移植touchGFX4.13
【SDRAM】STM32外扩SDRAM学习总结 + CubeMX配置教程
STM32CubeMX | 41 - 使用LTDC驱动TFT-LCD屏幕(RGB屏)
手把手教你制作TouchGFX的工程模板

其他问题
Cannot Load Flash Programming Algorithm !
stm32修改堆栈大小(堆栈空间不足导致死机)

1. 选择调试下载方式

用STM32CubeMX工具选择好芯片后,在Trace and Debug里面选择下载调试方式。

2. 选择晶振和时基

System Core里面配置晶振和时基

3.打开CRC检验

Computing中打开CRC,勾选Activated即可。ST使用TouchGFX必须使能CRC。

4.使能DMA2D

Multimedia中打开DMA2D,勾选Activated,并配置和使能DMA2D中断


5.配置SDRAM

Connectivity中找到FCM,相关配置如图:

下面的相关配置参考《野火29-电容触摸屏-触摸画板》的bsp_sdram.c文件中的 SDRAM_Init(void)函数内容进行配置。也可根据数据手册配置。额~~~我还不会看数据手册。

切记:需要对 SDRAM的片选信号和时钟使能信号进行重新配置,否则屏幕只能点亮,而不能正常显示touchgfx。 PH6引脚更改为FMC_SDNE1PH7引脚更改为FMC_SDCKE1

7.配置LTDC

Multimedia中选择LTDC,并使能LTDC中断。

下面的相关配置参考《野火29-电容触摸屏-触摸画板》的bsp_lcd.c文件中的 LCD_PARAM_TypeDef lcd_param[LCD_TYPE_NUM]数组内容进行配置。



需要对LTDC的相关引脚重新手动配置,和原理图一一对应,这里使用RGB565,相关配置引脚如下

这里可参考手把手教你制作TouchGFX的工程模板 里面介绍了触摸中断的引脚设置方式。本文未用到此方法,因为触摸中断已经在野火stm32h743xih6 touchgfx 添加触摸代码(二)的bsp_i2c_touch.h文件中定义。

显示屏背光设置

8.检查相关中断是否开启

9.配置FREERTOS

Middleware中选择CMSIS_V1


10配置touchgfx

Software packs中配置 touchgfx

11.配置时钟


野火七寸屏最大时钟33Mhz,FMC最大支持240Mhz

12.生成工程

13.先使用touchgfx designer工具配置GUI

步骤12完成后直接打开mdk工程会报错
在STM32cubemx生成的文件夹下的TouchGFX中打开ApplicationTemplate.touchgfx.part配置GUI界面。

14.添加SDRAM相关代码

main.c中添加SDRAM的相关代码

/*** @brief  FMC SDRAM 模式配置的寄存器相关定义*/
#define SDRAM_SIZE 0x4000000  //64M字节,两片W9825G6KH-6,32MB@16bit组成64M@32bit/*SDRAM 的bank选择*/
#define FMC_BANK_SDRAM            FMC_Bank2_SDRAM
#define FMC_COMMAND_TARGET_BANK   FMC_SDRAM_CMD_TARGET_BANK2#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)   #define SDRAM_TIMEOUT                            ((uint32_t)0xFFFF)static FMC_SDRAM_CommandTypeDef Command;static void MX_SDRAM_InitEx(void);    //函数声明
static void SDRAM_delay(__IO uint32_t nCount)
{__IO uint32_t index = 0; for(index = (100000 * nCount); index != 0; index--){}
}
static void MX_SDRAM_InitEx(void)
{uint32_t tmpr = 0;/* Step 1 ----------------------------------------------------------------*//* 配置命令:开启提供给SDRAM的时钟 */Command.CommandMode = FMC_SDRAM_CMD_CLK_ENABLE;Command.CommandTarget = FMC_COMMAND_TARGET_BANK;Command.AutoRefreshNumber = 1;Command.ModeRegisterDefinition = 0;/* 发送配置命令 */HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);/* Step 2: 延时100us */ SDRAM_delay(1);/* Step 3 ----------------------------------------------------------------*//* 配置命令:对所有的bank预充电 */ Command.CommandMode = FMC_SDRAM_CMD_PALL;Command.CommandTarget = FMC_COMMAND_TARGET_BANK;Command.AutoRefreshNumber = 1;Command.ModeRegisterDefinition = 0;/* 发送配置命令 */HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);   /* Step 4 ----------------------------------------------------------------*//* 配置命令:自动刷新 */   Command.CommandMode = FMC_SDRAM_CMD_AUTOREFRESH_MODE;Command.CommandTarget = FMC_COMMAND_TARGET_BANK;Command.AutoRefreshNumber = 8;Command.ModeRegisterDefinition = 0;/* 发送配置命令 */HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);/* Step 5 ----------------------------------------------------------------*//* 设置sdram寄存器配置 */tmpr = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_1          |SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL   |SDRAM_MODEREG_CAS_LATENCY_3           |SDRAM_MODEREG_OPERATING_MODE_STANDARD |SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;/* 配置命令:设置SDRAM寄存器 */Command.CommandMode = FMC_SDRAM_CMD_LOAD_MODE;Command.CommandTarget = FMC_COMMAND_TARGET_BANK;Command.AutoRefreshNumber = 1;Command.ModeRegisterDefinition = tmpr;/* 发送配置命令 */HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);/* Step 6 ----------------------------------------------------------------*//* 设置刷新计数器 *//* 刷新周期=64ms/8192行=7.8125us *//* COUNT=(7.8125us x Freq) - 20 *//* 设置自刷新速率 */HAL_SDRAM_ProgramRefreshRate(&hsdram1, 824);
}

main.cstatic void MX_FMC_Init(void)函数中调用MX_SDRAM_InitEx()函数

main.cvoid StartDefaultTask(void const * argument)函数中调用MX_TouchGFX_Process()函数,

到这里,屏幕可以正常显示touchgfx的内容。


关于Software Packs选项找不到的解决办法:


野火stm32h743xih6 touchgfx显示屏点亮(一)相关推荐

  1. stm32 led屏控制卡_全彩LED显示屏出现亮线的时候怎么处理比较好呢?

    全彩LED显示屏相对于液晶拼接屏而言,其出现亮线.屏幕小故障的概率要比液晶拼接屏大很多,但是,一般来说这些小故障很容易处理,所以全彩LED显示屏的拥护者还是众多的.全彩LED显示屏出现亮线的时候怎么处 ...

  2. 电子计算机显示屏不亮了,电脑显示屏开机亮一下就不亮了怎么回事

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电脑开机后,液晶显示屏亮了一下就黑屏了,这是液晶屏出现了问题,包括暗屏故障和黑屏故障两种类型. 第一种类型是暗屏故障:当开机时液晶 ...

  3. 关于小米游戏本显示屏时亮时暗的问题

  4. android 5.1 显示屏亮灭的控制

    有些时候,在显示屏熄灭的情况下需要点亮显示屏,而有时候需要熄灭显示屏.以下是android 5.1 的一种亮屏和灭屏的方法,直接往文件里面写入数据. 1,判断显示屏的状态(点亮/熄灭) int scr ...

  5. 卡莱特led显示屏调试教程_卡莱特5A接收卡调屏步骤.doc

    卡莱特5A接收卡调屏步骤 卡莱特5A接收卡支持千兆网卡和发送卡两种发送方式,两种方式在5A接收卡的设置方面步骤相同,本文将讲述在千兆网卡发送条件下,5A接收卡的参数设置步骤(发送卡设置请参考其他文档) ...

  6. 卡莱特led显示屏调试教程_卡莱特5A接收调屏步骤.doc

    卡莱特5A接收调屏步骤 卡莱特5A接收卡调屏步骤 卡莱特5A接收卡支持千兆网卡和发送卡两种发送方式,两种方式在5A接收卡的设置方面步骤相似,本文将讲述在千兆网卡发送条件下,5A接收卡的参数设置步骤. ...

  7. 卡莱特led显示屏调试教程_麒麟电子|LED控制卡|LED显示屏|卡莱特同步卡使用千兆网卡调试步骤 通用 - Powered by Discuz!...

    注册登录后可以在线提问,行业从业者将帮助您解答! 您需要 登录 才可以下载或查看,没有帐号?请用中文注册用户! x 卡莱特千兆网卡调屏步骤 卡莱特所有接收卡支持千兆网卡和发送卡两种发送方式,两种方式在 ...

  8. 五种常见户外LED显示屏模组故障维修方法

    户外LED显示屏在使用的过程中,难免会出现坏灯.局部黑屏等想象,一般是由于LED显示屏模组上面出现了问题.这里有户外LED显示屏全面指南.以下是小编为您列举常见的5类户外LED显示屏模组故障及解决办法 ...

  9. led显示屏的合理亮度是多少?

    这几年LED显示屏迅速在城市中普及,不论是广场.医院.门店.晚会.可以说只要需要直接传播信息的地方就会有他的身影.LED电子显示屏以高亮著称,白天可能在意不到,但是到了晚上如果没有调节亮度眼睛直接观看 ...

最新文章

  1. 500 行代码写一个俄罗斯方块游戏
  2. [luoguP4705]玩游戏
  3. vc c语言坐标图,VC++6.0下C语言画图编程问题
  4. Apollo进阶课程㊲丨Apollo自动驾驶架构介绍
  5. JVM 内存区域方面的面试题
  6. yum方式安装android_在CentOS 7和Ubuntu14.04上安装Android Studio
  7. WPF仿微信界面发送消息简易版
  8. pycharm conda 环境 切换 linux_windows配置wsl2环境+pycharm指路
  9. Elasticsearch 为什么能做到快速检索?秘密在这里!
  10. C#事件-什么是事件
  11. 3道js面试题引发的脑洞
  12. linux桌面鼠标变一只手,Linux_安装鼠标主题 让 Ubuntu 的鼠标变漂亮,对ubuntu默认的白色鼠标主题厌 - phpStudy...
  13. sqli-labs注入特色分类教程1-15【手动注入与sqlmap全面双解】
  14. 纳米数据世界杯足球基础数据,接口文档,接口api调试,数据接口演示
  15. 高通平台android 8.1基线某款usb camera打开dev/video1出错
  16. SSM——SpringMVC
  17. 2021年氯化工艺考试内容及氯化工艺考试试卷
  18. 研究QQ、Fetion、Msn的socket连接
  19. shell怎么使用制表符_shell中vi替换特殊字符(制表符\t等)的方法
  20. 2022年样题五全国职业院校网络系统管理-网络部分

热门文章

  1. 为什么我发布的文章都是乱码呢?
  2. 微信公众号排名引流方法-订阅号与服务号引流布局教程 -公众号搜一搜与公众号排名优化课程
  3. 云片采用http(https)协议发送短信过程详解
  4. 真实世界的Windows Azure: 为了加强和振兴Luxor旅游业,埃及世界文化遗址在Windows Azure上建立移动门户...
  5. 【若泽大数据实战第十六天】Hive的安装部署 + 课程一个月总结
  6. 微软永远离破产只有 18 个月
  7. 红海云eHR系统助力HR破解校招困境
  8. 索尼Android电视 安装第三方软件,索尼X8500G怎么安装第三方软件看直播?当贝市场教你轻松解决!...
  9. 原来CSS的background还可以这么玩
  10. 复旦大学白悦辰课题组诚聘博士后、科研助理