在STM32F746G Discovery上启用触摸屏
如何为GUI应用程序启用STM32F746G探索板屏幕的触摸功能?默认情况下,显示器的触摸功能未启用,并且CubeMX工具不处理此功能。本文档将指导您完成以下几个。。。
如何为GUI应用程序启用STM32F746G探索板屏幕的触摸功能?
默认情况下,显示器的触摸功能未启用,并且CubeMX工具不处理此功能。
本文档将指导您完成基于现有GUI应用程序获得功能性触摸屏所需的几个步骤。
设置审查:
-用于STM32F746G Discovery的CubeMX v4.26图形应用程序项目
-选择的IDE是Atolic
-图形库是STemWin
-多维数据集固件是STM32Cube_FW_F7_1.11.0
1.从F746的配置CubeMX项目开始创建一个基本的GUI应用程序
在本节中,我将快速创建一个由2个按钮组成的基本GUI,并生成相应的Atolic项目。
这一部分很快就涵盖了,因为它在专门的常见问题解答中有更详细的描述:STM32F746G发现:使用CubeMX创建一个基本的图形应用程序,请随时参阅。
为F746打开已配置的CubeMX项目

在配置选项卡中,单击GRAPHICS
单击执行按钮启动GUID设计器
通过在小部件列表中的专用项目上单击两次添加2个按钮
关闭GUIDesigner并通过单击下面显示的按钮重新生成项目
2.导入触摸驱动程序(低级、BSP接口和HAL接口)
在Atolic TrueStudio中导入生成的项目,右键单击Drivers文件夹并选择Import
选择文件系统
选择Drivers文件夹作为基本文件夹,然后单击OK(确定)
从这个对话框中,我们将选择所有需要的文件
首先是低电平触摸驱动器ft5336.c/h

然后是Common文件夹中的更高级别接口
BSP驱动程序通用文件和触摸专用

然后单击完成要真正导入文件,您现在应该在Atolic项目中具有以下结构

3.更新包含文件搜索路径
由于某些包含文件已导入,您必须将其父文件夹添加到包含文件夹列表中。
打开项目属性并转到C/C++构建->设置

然后转到“工具设置”选项卡和“C编译器”->“目录”部分
添加包含include文件的新文件夹:../驱动程序/BSP/组件/公用
../驱动程序/BSP/组件/ft5336
../驱动程序/BSP/STM32746G发现

打开/src/main.c文件和#include指令(在USER标记之间)如下

4.返回CubeMX项目以启用和配置所需的外围设备
首先启用插入触摸接口的I2C外围设备

启用TIM3

启用USART1(对于触摸功能不是强制性的,但由于内部BSP依赖性而需要)

按如下方式配置TIM3(每1毫秒过期一次)

并启用中断

5.回到Atolic项目编辑源代码
请注意,尽管重新生成了源代码,添加的include指令仍会保留!
让我们继续在USER标记之间添加特定的代码。
初始化触摸屏和计时器,以便在每次到期时检索触摸状态(轮询模式)
- 在USER CODE BEGIN/END PFP部分的main.c文件中添加以下声明:

- 在USER CODE BEGIN/END 2部分的main.c文件中添加以下调用:

- 在主.c文件的USER CODE BEGIN/END 4部分中添加以下定义

- 在HAL_TIM_PeriodElapsedCallback USER CODE BEGIN/END Callback 1部分的主.c文件中添加

实现触摸其中一个按钮时要实现的动作(即使另一个按钮不可见)
首先声明一些变量
- 在USER START/END Callback 1部分的cbDialog函数中的WindoDLG.c文件中添加

- 在cbDialog函数的WindoDLG.c文件中,在USER START/END部分添加大小写ID_BUTTON_0和大小写WM_NOTIFICATION_CLIKED

6.您现在可以重建整个项目并将其闪存到板上

触摸按钮0(屏幕左上角)将隐藏第二个按钮,再次单击将使第二个按键再次出现!
您现在有了一个启用了触摸屏功能的功能性图形应用程序,由于所有额外的源代码都已添加到特定的用户部分,您可以自由地从CubeMX工具启用和配置其他外围设备,并在不丢失源代码的情况下重新生成源代码。
完整的最终项目在这里提供。
| 客户注意事项: 1) 您可以通过点击“创建者”信息中提供的姓名来联系这篇文章的作者。 2) 所有其他评论或反馈你可以通过电子邮件发送到community@st.com 3.)如果您需要特定(产品)支持请咨询我们的支持中心(https://www.st.com/content/st_com/en/support/support-home.html)您可以从各种在线支持选项中进行选择,并选择最符合您要求的服务。 |
