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

TouchGFX+STM32CUBEMX+STM32F429IGT6运行异常

[复制链接]
路过羊圈的狼 提问时间:2022-8-12 09:37 / 未解决
使用touchgfx+stm32CubeMx生成适合正点原子阿波罗开发板的工程文件不能正常运行。首先使用cube生成了LTDC+DMA2D+FMC+FreeRTOS配置,正常点亮了屏幕。可以使用LTDC直接显示文字到屏幕。
然后增加了touchgfx配置,再次生成文件后,系统直接死机。
具体表现为:
1、开机屏幕无法点亮,开了的LED闪灯任务无法运行;
2、在main函数里面注释掉MX_TouchGFX_Init();后,可以运行原来的程序;
3、执行2后,用debug单步运行,运行到MX_FMC_Init();就无法正常debug了。
4、重新单步MX_FMC_Init();,发现程序在开启__HAL_RCC_FMC_CLK_ENABLE();外设时钟后,系统就表现debug异常。
5、注释掉__HAL_RCC_FMC_CLK_ENABLE();外设时钟后,系统debug能正常运行,但是因为无外部sdram,屏幕显示异常。

实在摸不清问题点在哪里了。。。
请各位指导一下。
(之前用此配置方法正常驱动了一个4.3寸的320*240的显示屏,所以基础配置应该不会太差,此次出问题的是4.3寸800*480的屏)


收藏 评论2 发布时间:2022-8-12 09:37

举报

2个回答
路过羊圈的狼 回答时间:2022-8-15 10:42:49
问题还没有查明。
但是能让touchgfx正常显示了。
就是整个工程文件不能使用HAL_DELAY函数(我还没有配置其他外设中断),或者将HAL_DELAY的定时器中断优先级提高超过OS不能屏蔽的默认等级5,例如3。

新工程与之前工程的区别就是STM32CUBEMX的版本区别,新工程使用的是6.6.1。

两个版本的区别点:
在初始化MX_TouchGFX_Init();的时候,进入到freertos的临界区taskEnterCritical,关闭中断,再退出临界区后。
新版本的NVIC的SCB->ICSR = 0x0043D000;
老版本的NVIC的SCB->ICSR = 0x00C3D000,且一直为这个值;


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