历史上的今天
今天是:2025年03月15日(星期六)
2020年03月15日 | STM32F429 初试TouchGFX
2020-03-15 来源:eefocus
自制的429开发板到了最后的一个目标-TouchGFX
随着新版本的发布,TouchGFX和CubeMX之间的集成越来越好了,操作了越来越容易了。
这里429需要用到SDRAM+LTDC+FreeRTOS+SPI(触屏)以及LCD液晶屏的驱动,这些自己先搞定,也不难,都搞定了就可以到TouchGFX的配置了。
FreeRTOS里面设置


开启DMA2D以及LTDC的全局中断
Cubemx配置TouchGFX
先点additional software下载这个包


然后配置,配置不对的话会有错误提示,按照提示解决就好了。

CubeMX生成代码
去freertos.c添加TouchGFX运行函数MX_TouchGFX_Process()
void StartDefaultTask(void const * argument)
{
/* USER CODE BEGIN StartDefaultTask */
MX_TouchGFX_Process();
/* USER CODE END StartDefaultTask */
}
去STM32TouchController.cpp添加触屏驱动, 注意X,Y 是屏幕坐标,不像STemwin是AD值
bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y)
{
if(XPT2046_READ_X()==0 && XPT2046_READ_Y()==0)
{
return false;
}
else
{
x=XPT2046_READ_X();
y=XPT2046_READ_Y();
return true;
}
}
打开TouchGFX,如果刚才下载了还没有安装,记得去以下地址找到安装包进行安装。。
C:UsersXXXSTM32CubeRepositoryPacksSTMicroelectronicsX-CUBE-TOUCHGFX4.13.0UtilitiesPC_SoftwareTouchGFXDesigner
去到TouchGFX designer,打开位于STM32项目文件夹(Src)下的xxx.touchgfx文件xxx为项目名
设计界面

设计好了点Generate Code, 然后回到Keil中编译下载就可以了。 到此就可以用了
这里展开说下按钮的回调函数,实现点左边按钮进度条+1,右边-1

找到screenView.hpp, 注意有多个窗口的话screen后面有数字,找到相应的文件修改
class screenView : public screenViewBase
{
public:
screenView();
virtual ~screenView() {}
virtual void setupScreen();
virtual void tearDownScreen();
virtual void DOWN_Function(); //added
virtual void UP_Function();//added
int count;//added
protected:
};
找到screenView.cpp, 注意有多个窗口的话screen后面有数字,找到相应的文件修改
screenView::screenView()
{
count=0;//added
}
void screenView::DOWN_Function()
{
count++;
if (count > 100) {
count = 0;
}
touchgfx_printf("count %drn", count);
circleProgress1.setValue(count);
circleProgress1.invalidate();
}
void screenView::UP_Function()
{
count--;
if (count < 0) {
count = 100;
}
touchgfx_printf("count %drn", count);
circleProgress1.setValue(count);
circleProgress1.invalidate();
}
运行结果

好了到此就告一段落了,大家自由发挥吧.
我的一个阶段目标达成,也要停下来想想接下来研究点撒,估计是FPGA,下一个目标。
史海拾趣
|
本设计实例介绍如何在短暂电压不足期间使电信设备保持正常工作。首先必须了解电信设备专用电源的几个细节。向电信设备馈电的电源的共模电压为-48V,尽管实际电压范围可能是-42.5V ~ -56V、-40V ~ -60V,甚至超出这些范围。公共电源——“砖块”DC/D ...… 查看全部问答> |
|
关于我自己 1、业务员和客户聊天的时候哪些话题不需要聊太多关于技术和理论的话题,需要的是今天的新闻呀、天气呀等话题。因此,业务员在日常的时候必须多读些有关经济、销售方面的书籍、杂志,尤其必须每天阅读报纸,了解国家、社会消 ...… 查看全部问答> |
|
单位需要设计一种ISA转PCI的接口卡 用途是把以前老设备上面的ISA接口卡(主要是s1240程控机)转用点现在PCI口上使用.通过查询资料,我发现用专用芯片pci9052 似乎是最省力的办法。但是由于本人学的是通信专业,对硬件设计基本不明白,数电模电忘记差 ...… 查看全部问答> |
|
用PB编制系统镜像,由于用到SHFileOperation复制文件,但是显示进度框上没有取消按钮 别的版本的机器则可以...不知道这个跟什么组件选择还有关系,还有就是ceshell.dll是怎么生成的 新手请教各位大虾!!… 查看全部问答> |
|
这样问也不知道冒不冒昧,但是还是得问问soso姐,姐姐,从我个人在论坛每个子模块查资料找东西来看,我觉得子模块有点乱,咱们能不能把子模块中的帖子细细分下类呢?比如说,软件和资料,我们把模块细化分一下类,新回复的东西还是固有不变,这样大 ...… 查看全部问答> |
|
128KB的Flash中我存储了两段程序 第一个基址是0x00000000 第二个基址是0x00001000 这两个程序是不相关的,独立的, 第一个程序我是用新唐的ICP软件下载的,第二个程序是我通过自己写在LDROM中的程序下载到0x00001000 , 现在我希望能够 ...… 查看全部问答> |




