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

三种方法精准计算 TouchGFX FPS,搞定界面流畅性检测

[复制链接]
攻城狮Melo 发布时间:2026-4-8 16:41

详细笔记:【应用笔记】LAT1478 TouchGFX FPS的计算方法 - STM32团队 ST意法半导体中文论坛

核心主旨 :TouchGFX 计算 FPS 需根据帧补偿开关 /刷新率 选对应方法,硬件测量法为官方推荐的最精准方案,适配所有场景。

一、帧补偿开启(适配标准 60Hz 刷新率)

用 TouchGFX 官方默认代码,在handleTickEvent函数中实现:

  1. 区分正常渲染帧(frames)和丢帧(frameSkippedCounter);
  2. 累计帧数≥60 时,将frames作为 FPS 值,随后重置计数器;
  3. 若刷新率非 60Hz(如 30Hz),同步修改判断条件(≥30)即可。

二、帧补偿关闭(适配任意刷新率)

改用时间戳统计法 ,无需依赖刷新率:

  1. HAL_GetTick()获取毫秒时间戳,记录上一次统计节点;
  2. 每次 Tick 触发时frames自增,累计 1000ms 时,frames即为 FPS 值;
  3. 重置计数器和时间戳,循环统计。

三、官方推荐:硬件测量法(精度最高,无场景限制)

通过逻辑分析仪测 GPIO 翻转次数,规避软件计算误差:

  1. STM32CubeMX 中定义RENDER_TIME_GPIO 引脚;
  2. TouchGFX 渲染时,引擎自动触发该引脚电平翻转;
  3. 逻辑分析仪统计1 秒内引脚翻转次数 ,即为实际 FPS。

四、方法选择速览

表格

计算方法 适配场景 核心优势
帧补偿开启代码法 60Hz 标准刷新率、帧补偿开 官方默认,代码简单
帧补偿关闭代码法 任意刷新率、帧补偿关 适配性强,无需校准刷新率
硬件测量法 所有场景(尤其高精度需求) 精度最高,不受软件配置影响

五、关键注意点

  1. 代码计算需保证handleTickEvent函数无冗余代码,避免 Tick 延迟影响统计;
  2. 硬件测量需确保 GPIO 引脚配置正确,逻辑分析仪采样率匹配渲染帧率;
  3. 若资料存在差异,以 ST 官网最新内容和实际硬件验证结果为准。
收藏 评论0 发布时间:2026-4-8 16:41

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版