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

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个回答
wolfgang2015 回答时间: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 的问题


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


我的CubeMX与你的事一样的。 4.26
wolfgang2015 回答时间: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
wolfgang2015 回答时间: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里改没有用的。

wolfgang2015 回答时间: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
谢谢分享
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

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