STM32
直播中

三心四意

8年用户 816经验值
私信 关注
[问答]

用cubemx直接生成的工程,把extMem设置到外部SDRAM就显示花屏怎么解决?

用cubemx直接生成的工程,用GUIbuilder生成的代码,用的freertos,字符串可以显示,但是创建的窗口就花屏,大神教教我,该怎么办,

  • GUI_ALLOC_AssignMemory(extMem, GUI_NUMBYTES);

每当把extMem设置到外部SDRAM就显示花屏,跪求大神指教

  • void GRAPHICS_MainTask(void) {

  •   /* 1- Create a FrameWin using GUIBuilder */
  •   CreateFramewin();

  • /* USER CODE BEGIN GRAPHICS_MainTask */
  • /* User can implement his graphic application here */
  •   /* Hello Word example */
  •     GUI_Clear();
  • //                CreateWindow();

  •     GUI_SetColor(GUI_WHITE);
  •     GUI_SetFont( GUI_Font32_1);
  •     GUI_DispStringAt("Hello world!", (LCD_GetXSize()-150)/2, (LCD_GetYSize()-20)/2);

  • /* USER CODE END GRAPHICS_MainTask */
  •   while(1)
  • {
  •       GUI_Delay(100);
  • }
  • }




回帖(1)

绝代双骄

2024-4-25 17:32:01
根据您的描述,您在使用CubeMX生成的工程中,将extMem设置到外部SDRAM后出现花屏问题。这可能是由于以下几个原因导致的:

1. 外部SDRAM初始化不正确:请确保您已经正确初始化了外部SDRAM,并设置了正确的时序参数。

2. 内存分配问题:在使用GUI_ALLOC_AssignMemory函数时,请确保您分配了足够的内存给GUI,并检查是否有内存泄漏或其他内存问题。

3. 显示驱动问题:请检查您的显示驱动是否支持外部SDRAM,并确保驱动已正确配置。

4. 中断和时钟配置:请检查您的中断配置和时钟设置是否正确,以确保系统稳定运行。

为了解决这个问题,您可以尝试以下步骤:

1. 检查外部SDRAM的初始化代码,确保其正确初始化。

2. 在GUI_ALLOC_AssignMemory函数中,尝试分配更多的内存给GUI,以排除内存不足的问题。

3. 检查显示驱动的配置,确保其支持外部SDRAM,并正确配置。

4. 检查中断配置和时钟设置,确保系统稳定运行。

5. 如果问题仍然存在,您可以尝试使用其他内存分配方法,例如使用动态内存分配函数(如malloc)来分配内存。

6. 如果您仍然无法解决问题,您可能需要查看相关的硬件参考手册和软件示例,以获取更多关于如何正确配置和使用外部SDRAM的信息。

希望这些建议能帮助您解决问题。如果您需要更多帮助,请提供更多详细信息,例如您的硬件平台、显示驱动和外部SDRAM的型号。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分