你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-H533RE评测】4、移植TouchGFX

[复制链接]
lugl 发布时间:2024-7-2 20:52

【前言】

TouchGFX可以非常方便的进行人机交互,支持的屏也非常多,小到OLED屏,大到RGB屏。这次使用ST7735进行移植试验。

其中st7735的驱动移植,请大家移步【NUCLEO-H533RE评测】3 SPI驱动st7735 - STM32团队 ST意法半导体中文论坛 (stmicroelectronics.cn)

【实验步骤】

1、在驱动好st7735的基础之上添加x-coube-touchgfx组件,如果没有安装这个组装的,自行到官网查看例程。

2、添加一个定时器TIM7用于touchGFX的心跳包。

image.png

3、激活touchgfx组件,按下图的步骤打开。

image.png

其中格式选择RGB565,像素大小根据自己的屏的参数进行设置。

4、保存后生成工程,在工程的TouchGFX下面,打开TouchGFX。

image.png

5、打开toucgFX 设计器,往其中添加几个组装,并生成工程。

image.png

6、在stm32CoubeIDE工程中的TouchGFX->target目录下有TouchGFXHAL.cpp文件,打开它,添加与LCD屏的接口函数。

image.png

在文件中添加st7735.h的头文件。以及<touchgfx/hal/OSWrappers.hpp>用于同步信号的获取。

然后在void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect)函数中,添加一帧图像的刷新代码:

uint16_t height,i;

volatile uint16_t buffer = getClientFrameBuffer()+(rect.yDISPLAY_WIDTH)+rect.x;

ST7735_SetAddressWindow(rect.x,rect.y,rect.x+rect.width-1,rect.y+rect.height-1);

ST7735_WriteCommand(0x2c);

uint8_t spisend_buff[DISPLAY_WIDTH*2];

for(height=0;height<rect.height;height++)

{

for(i=0;i<rect.width;i++)

{

    spisend_buff[i*2] = buffer[i]>>8;

    spisend_buff[i*2+1] = buffer[i]&0xFF;

}

ST7735_WriteData(spisend_buff,DISPLAY_WIDTH*2);

buffer += DISPLAY_WIDTH;

} }

image.png

最后在文件低部声明一个可以供C调用的同步函数

extern "C"

void touchgfxSignalVSync(void)

{

/ VSync has occurred, increment TouchGFX engine vsync counter /

touchgfx::HAL::getInstance()->vSync();

/ VSync has occurred, signal TouchGFX engine /

touchgfx::OSWrappers::signalVSync(); }

image.png

最后回到main.c中,添回Tim7的回调函数:

/ USER CODE BEGIN 4 /

extern void touchgfxSignalVSync(void);

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

if (htim->Instance == TIM7)

{

touchgfxSignalVSync();

} }

/ USER CODE END 4 /

到此,移植完毕,下载到开发板如,如期的实现了touchGFX的移植 :

5497bd193beb9554e97f93e8c5f7508.jpg

收藏 评论2 发布时间:2024-7-2 20:52

举报

2个回答
lugl 回答时间:2024-7-2 20:57:05
由于工程太大,上传不了附件,附网盘连接:0 }% y( n) L/ ^/ |, X

$ N. D  ^) \* j$ Y3 k" t, C7 E* p% ~5 J2 b: g  B
链接:https://pan.baidu.com/s/1PKaZoNcdvo2qXpPa9QBxKw?pwd=ite7 8 U7 u9 e) B4 N5 t
提取码:ite7 $ l& M# @4 w5 f* ?4 o: v5 u3 z
--来自百度网盘超级会员V6的分享# b/ S+ m0 \4 u; [2 {4 E0 e

) Z" ^, k4 E# [( U7 h' A( {
STMWoodData 回答时间:2024-7-2 22:29:11

不错不错,学习一下

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版