STM32F429IGT6项目准备6——使用STM32CubeMX配置TouchGFX

1 前言

第六次记录如何使用cubemx生成touchgfx工程,本文应该会比较长,大家耐心观看。配置touchgfx过程中,我们大致需要做的如下:
· 配置SDRAM(参考前文)
· 配置RTOS(参考前文)
· 配置LTDC
· 配置DMA2D
· 配置touchgfx
本文其实是可以分割为LTDC,DMA2D配置和TouchGFX配置两篇的,第一篇测试DMA2D
,LTDC, 手动刷SDRAM来测试。但是想想还是算了,测试来测试去的,麻烦的要死,还有水文章嫌疑,所以写了一个7个大标题的文章。我们学校已经放假了,祝大家寒假玩的开心啊^ V ^

注意:本文以前文为基础。默认配置好了FREERTOS,printf重定向,SDRAM

2 硬件

查屏幕手册,找到以下参数

在这里插入图片描述

3 Cubemx配置

按照以上参数,填写配置
配置之前,确定引脚连接全部正确

3.1 LTDC Parameter Settings

在这里插入图片描述

3.2 LTDC Layer Settings

层数先改为1再填参数
帧缓冲起始地址同SDRAM
在这里插入图片描述

3.3 LTDC Layer Settings

在这里插入图片描述

3.4 LTDC NVIC Settings

在这里插入图片描述

3.5 LTDC clock

在这里插入图片描述

3.6 DMA2D Layer Settings

在这里插入图片描述

3.7 DMA2D NVIC Settings

在这里插入图片描述

3.8 选择TouchGFX软件包

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

3.9 使能CRC

在这里插入图片描述

3.10 TouchGFX 配置

建议使用双缓冲。显存大小48027216/8大约260KB左右,可以这样设置
一级缓冲0xD0000000~ 0xD0080000大小512KB
一级缓冲0xD0080000~ 0xD0100000大小512KB
所以如果下面cubemx选择的是双缓冲,第二缓冲起始地址可以设为0xD0080000。
在这里插入图片描述

4 工程内的修改

4.1 打开*.part文件,随便拉点元素,点击Generate Code

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

4.2 为TouchGFX创建进程

直接在CubeMX里配置就行
在这里插入图片描述
在这里插入图片描述

4.3 打开屏幕背光

5 测试

PS:猜中板子送男朋友 ^ V ^
在这里插入图片描述

6 添加触摸驱动并测试

注意:
· touchpad有关的初始化和采集全部在STM32TouchController.cpp内编写。
· 由于触摸芯片采集速度慢,不能和touchGFX同步,所以设置为几个tick采集一次触摸位置。否则可能出现按下按键后按键频闪。
在这里插入图片描述
以下代码仅供参考

6.1 STM32TouchController.cpp内添加

/* USER CODE BEGIN STM32TouchController */
extern "C" {
#include "touch_043.h"
}
#include <STM32TouchController.hpp>

void STM32TouchController::init()
{
    /**
     * Initialize touch controller and driver
     *
     */
	Touch_Init();
}

bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y)
{
    /**
     * By default sampleTouch returns false,
     * return true if a touch has been detected, otherwise false.
     *
     * Coordinates are passed to the caller by reference by x and y.
     *
     * This function is called by the TouchGFX framework.
     * By default sampleTouch is called every tick, this can be adjusted by HAL::setTouchSampleRate(int8_t);
     *
     */
	Touch_Scan();
	if(touchInfo.flag)
	{
		x = touchInfo.x[0];
		y = touchInfo.y[0];
		return true;
	}
    return false;
}

6.2 TouchGFXHAL.cpp内添加

void TouchGFXHAL::initialize()
{
    // Calling parent implementation of initialize().
    //
    // To overwrite the generated implementation, omit call to parent function
    // and implemented needed functionality here.
    // Please note, HAL::initialize() must be called to initialize the framework.

    TouchGFXGeneratedHAL::initialize();
	TouchGFXGeneratedHAL::setTouchSampleRate(3);//三个ticks采集一次
}

7 测试

在这里插入图片描述
填个坑:第一个笔记中说道使用TouchGFX理论上是不可以勾选MicroLIB的,但是实际尝试中可以勾选,printf重定义也不需要那么长。需要做的是在预定义中添加NDEBUG即可,不知道是什么原因。

有问题请留言,需要源码请评论区下方留邮箱
.
.
.
——END

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
介绍STM32CubeMX 5.0.0 STM32CubeMX是32位ARM®Cortex®STM32微控制器的图形工具。它是STMCube“计划的一部分,既可以作为独立应用程序使用,也可以作为集成开发环境(IDE)集成的Eclipse插件使用 .STM32CubeMX具有以下主要功能: 轻松的微控制器选择涵盖整个STM32产品组合 从STMicroelectronics板列表中选择电路板。 简单的微控制器配置(引脚,时钟树,外设,中间件)和相应的初始化C代码的生成。 通过将先前保存的配置导入新的MCU项目,可轻松切换到属于同一系列的另一个微控制器。 生成配置报告。 为选择的集成开发环境工具链生成IDE就绪项目STM32CubeMX项目包括生成的初始化C代码,STM32 HAL驱动程序,用户配置所需的中间件堆栈以及在所选IDE中打开和构建项目所需的所有相关文件。 用户定义的应用程序序列的功耗计算。 自我更新允许用户使STM32CubeMX保持最新状态。 下载和更新用户应用程序开发所需的STM32Cube“嵌入式软件”(有关STM32Cube嵌入式软件产品的详细信息,请参阅附录E:STM32Cube嵌入式软件包)。 安装并运行STM32CubeMX 5.0.0 支持的操作系统和体系结构 Windows®7:32位(x86),64位(x64) Windows®8:32位(x86),64位(x64) Windows®10:32位(x86),64位(x64) Linux®:32位(x86)和64位(x64)(在RedHat,Ubuntu和Fedora上测试) 由于STM32CubeMX是32位应用程序,因此某些版本的Linux 64位 发行版需要安装32位兼容软件包,如作为ia32-libs。 MacOS:64位(x64)(在OS X Yosemite上测试) 软件要求 在Windows和Linux上:Java运行时环境(最低版本1.7.0_45) 在MacOS上:Java开发工具包(最低版本1.7.0_45) 安装STM32CubeMX 要安装STM32CubeMX,请执行以下步骤: 将最新的STM32CubeMX安装包的全部内容从http://www.st.com/stm32cubemx解压缩(解压缩)到同一目录中 在Windows上 确保您拥有管理员权限 双击SetupSTM32CubeMX-5.0.0.exe文件 在Linux上 确保您具有目标安装目录的访问权限,您可以以root(或sudo)身份运行安装,以在共享目录上安装STM32CubeMX 在SetupSTM32CubeMX-5.0.0.linux文件上双击(或从控制台窗口启动) 在MacOS上 确保您具有目标安装目录的访问权限,您可以以root(或sudo)身份运行安装,以在共享目录上安装STM32CubeMX 在SetupSTM32CubeMX-5.0.0应用程序上双击(或从控制台窗口启动) 安装后,您可以安全地从磁盘中删除zip的内容。 有关系统要求或其他可能安装的更多详细信息,请参阅STM32CubeMX用户手册。 运行STM32CubeMX 在Windows上 从Program Files> ST Microelectronics> STM32CubeMX中选择STM32CubeMX。 或者双击桌面上的STM32CubeMX图标。 在Linux上 从STM32CubeMX安装目录启动STM32CubeMX可执行文件 在MacOS上 从启动板启动STM32CubeMX应用程序 卸载STM32CubeMX 要卸载STM32CubeMX,请执行以下步骤: 在Windows上 打开Windows控制面板。 选择“程序和功能”以显示计算机上安装的程序列表。 右键单击STM32CubeMX并选择卸载功能。 在Linux上 使用文件资源管理器,进入STM32CubeMX安装的卸载程序目录,然后双击startuninstall桌面快捷方式 或使用java -jar /Uninstaller/uninstaller.jar手动启动卸载 在MacOS上 使用文件资源管理器,进入STM32CubeMX安装的Uninstaller目录,然后双击uninstaller.jar 或直接将STM32CubeMX应用程序移动到回收站中
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菠萝地亚狂想曲

送我一瓶农夫山泉?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值