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

CubeMX配置STM32F769I GUI过程出现的BUG及解决方法

[复制链接]
wenyangzeng 发布时间:2018-7-9 13:42
本帖最后由 wenyangzeng 于 2018-7-10 20:20 编辑

CubeMX配置STM32F769I GUI过程出现的BUG及解决方法




    按照帖子介绍的方法,很快就配置完成了STM32F769I DiscvoeryGUI工程。可能所用的CubeMX4.26.0版本与版主的不同,编译下载后运行结果如图1,图像显示不正常。

1.png
                             图1

这个demo背景色是黑色,从图中可以看到H方向水平扫描大概只扫描了屏幕的一半400DPI,好像是从下往上扫描而不是从左往右扫描。右边的彩条是复位时留下了的。

针对400DPI进行分析

步骤1
尝试将MX_LCD_Init()函数中的
hltdc.Init.AccumulatedActiveW=402改成802
hltdc.Init.TotalWidth=403改成 803;参见图6

编译运行后结果如下图2:


2.png
                                图2

H方向拉长了,W方向没有改变,问题还是没有解决。

步骤2
回到CubeMX

3.png

                        图3


修改CubeMXLTDC Parameter参数配置将Activa width400修改成800

4.png
                                  图4

重新生成工程,编译下载运行,结果见图5:

5.png
                             图5

W方向扫描正常了,但H垂直方向坐标明显有误。

先小结一下:
为什么在MDK中直接修改函数参数Activa width(步骤1),改变W方向扫描无效?
而在CubeMX中(步骤2)修改Activa width生成新工程有效,改变W方向扫描有效,但H方向坐标出错?
判断:可能是CubeMX的一个BUG。大概从CubeMX中更新工程时不只更新了MX_LCD_Init()函数的内容,应该还有某个文件也更新了,但更新对象错了,可能是W坐标数据更新到H坐标数据去了

这个BUG只能靠ST专家来解决了,我们只能用修补的办法来应急使用:
既然我们从CubeMX中(步骤2)修改了ActiveWidth=800,W方向扫描就正常了,H方向扫描却错误了。
而我们在步骤1修改的:hltdc.Init.AccumulatedActiveW   和  hltdc.Init.TotalWidth 的参数可以影响H方向。

修改步骤(2步)
1、先在CubeMX中修改:Activa width=800,(图4)
生成新工程(一定要生成新工程!!)。
2、然后在MDK下修改修改MX_LCD_Init()

  hltdc.Init.AccumulatedActiveW = 402;  //(原802)
  hltdc.Init.TotalWidth = 403;                 //(原803)

图6改成图7的参数:

6.png
                                图6



7.png

                               图7

编译、下载、运行:

OK!

8.png
                          图8

使用不同版本CubeMX的朋友也要试试哦!





收藏 评论12 发布时间:2018-7-9 13:42

举报

12个回答
wolfgang 回答时间:2018-7-9 21:55:37
wenyangzeng 发表于 2018-7-9 16:07
CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像 ...

你图3 原本就是402、403,按照图4修改为802、803后,
后来又按照图6、图7修改会402、403
这怎么在围绕打转呢?这个402、403修改来修改去,

其实你没说到问题的重点,看我原贴后边的 补充说明
针对图一,最终还是
OTM8009A_ORIENTATION_PORTRAIT 和 OTM8009A_ORIENTATION_LANDSCAPE 的问题


wolfgang 回答时间:2018-7-9 14:51:28
1.jpg
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?


我的CubeMX与你的事一样的。 4.26
wolfgang 回答时间:2018-7-9 14:53:18
不过还是值得恭喜,开启了 MIPI DSI学习的大门
wenyangzeng 回答时间:2018-7-9 15:04:51
wolfgang2015 发表于 2018-7-9 14:51
应该是某些参数没设置对造成,不过我看你的内容,之前不就是402、403?

Active=400时,底下2个是402、403 ,显示不正常
Active=800时是802,803
wolfgang 回答时间:2018-7-9 15:31:23
wenyangzeng 发表于 2018-7-9 15:04
Active=400时,底下2个是402、403 ,显示不正常
Active=800时是802,803

我是说“图6改成图7的参数”这里
这不是也配置成为:402、403
wenyangzeng 回答时间:2018-7-9 16:07:46
本帖最后由 wenyangzeng 于 2018-7-9 16:14 编辑
wolfgang2015 发表于 2018-7-9 15:31
我是说“图6改成图7的参数”这里
这不是也配置成为:402、403

CubeMX按照图4修改后生成新的工程,图4 里的802、803在MDK里显示在图6的参数中,不改成图7就显示图5的图像了。
wenyangzeng 回答时间:2018-7-9 22:17:09
本帖最后由 wenyangzeng 于 2018-7-9 22:19 编辑
wolfgang2015 发表于 2018-7-9 21:55
你图3 原本就是402、403,按照图4修改为802、803后,
后来又按照图6、图7修改会402、403
这怎么在围绕打 ...

版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里改回402和403.没有打转。cubeMX里不修改,没有生成新工程,在MDK里改没有用的。

wolfgang 回答时间:2018-7-9 22:42:26
wenyangzeng 发表于 2018-7-9 22:17
版主没有理解我的思路,那个402、403必须是在cubeMX里修改Active=800,得到802和803.生成工程后,在MDK里 ...

对比一下active=800 和active=400 其他代码呢?看看生成的代码还有什么差别~
zero99 回答时间:2018-7-16 17:12:42
谢谢分享
KEY1 回答时间:2018-7-21 09:47:46
我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程
wenyangzeng 回答时间:2018-7-21 09:57:04
本帖最后由 wenyangzeng 于 2018-7-21 09:58 编辑
50031185 发表于 2018-7-21 09:47
我在用Cube 感觉也是 会出现各种奇怪的问题,很恶心,  时不时就得重新生成工程 ...

只要过程中某一步参数没有设置好,后面就很麻烦了。1楼链接的版主的那篇帖子很具体,可以按照贴中方法进行。
KEY1 回答时间:2018-9-18 09:25:25
wolfgang2015 发表于 2018-7-9 21:55
你图3 原本就是402、403,按照图4修改为802、803后,
后来又按照图6、图7修改会402、403
这怎么在围绕打 ...

是的,我也出现了相同问题,感觉就是方向错了,找了半天没找到地方, 最后搜索关键字找到了
初始化成了:
OTM8009A_Init(OTM8009A_FORMAT, OTM8009A_ORIENTATION_PORTRAIT);

OTM8009A_ORIENTATION_PORTRAIT  指竖屏模式  显示人像方向
OTM8009A_ORIENTATION_LANDSCAPE  横屏模式, 显示风景方向

所属标签

相似分享

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