久芯网

STM32H750B-DK 开发板 图形example 显示白屏

avatar cokefish 提问时间: 2023-07-10 12:18:30 / 未解决
STM32H750B-DK开发板,使用  STM32CubeIDE Version: 1.7.0 + STM32Cube_FW_H7_V1.9.1
在 应用  
STM32Cube_FW_H7_V1.9.1\Projects\STM32H750B-DK\Applications\Display\LTDC_Paint
STM32Cube_FW_H7_V1.9.1\Projects\STM32H750B-DK\Demonstrations\TouchGFX\SW4STM32
STM32Cube_FW_H7_V1.9.1\Projects\STM32H750B-DK\Demonstrations\MenuLauncher\SW4STM32
这几个demo的时候,始终是显示白屏。

使用 STM32H750B-DK\Applications\FreeRTOS\FreeRTOS_ThreadCreation\SW4STM32\XIP_QSPI_InternalSRAM,可以看见LED闪烁。
板子下载 https://www.st.com/resource/en/c ... 32h750b-dk_demo.zip 可以正常显示。

请问是什么原因。
其他版本的组合(CubeIDE+BSP)也试过,现象相同。


如需获得 STM32H750B 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

6个回答
  • avatar cokefish
    回答时间: 2023-07-10 12:37:21

  • avatar cokefish
    回答时间: 2023-07-10 12:59:19

    16:45:43 : ST-LINK SN : 003D00203137510E33333639 16:45:43 : ST-LINK FW : V3J10M3 16:45:43 : Board : STM32H750B-DK 16:45:43 : Voltage : 3.27V 16:45:43 : SWD freq : 24000 KHz 16:45:43 : Connect mode: Normal 16:45:43 : Reset mode : Software reset 16:45:43 : Device ID : 0x450 16:45:43 : Revision ID : Rev V

  • avatar xmshao
    回答时间: 2023-07-10 13:26:03

    从你描述来看,硬件上应该没啥问题。你提到的几个DEMO烧录后白屏,估计你只烧录了部分运行或放在外部存储器的代码,你需先烧录一部分启动代码, 你去H7系列Cube库的STM32H750-DKD的Templates目录下有个ExtMem_Boot目录,你在那里打开相应IDE的工程兵结合你使用外部存储做适当配置,编译后烧录 到你的板子上,然后烧录要放在外部的代码,也就是你这里提到的几个DEMO代码。

  • avatar butterflyspring
    回答时间: 2023-07-10 13:50:02

    项目中有些README里有一些说明。另外测试工程基本上都要用bootloader, 看看有没有烧进去。

  • avatar cokefish
    回答时间: 2023-07-10 14:08:10

    static int32_t MT48LC4M32B2_Delay(uint32_t Delay)

    {

    uint32_t tickstart;

    tickstart = HAL_GetTick();

    // while((HAL_GetTick() - tickstart) < Delay)

    {

    }

    return MT48LC4M32B2_OK;

    }

    复制代码

    static int32_t MT48LC4M32B2_Delay(uint32_t Delay)

    {

    uint32_t tickstart;

    tickstart = HAL_GetTick();

    // while((HAL_GetTick() - tickstart) < Delay)

    {

    }

    return MT48LC4M32B2_OK;

    }

    复制代码 HAL_GetTick() 返回的值是不对的,所以循环始终无法跳出。 会是什么原因。

  • avatar cokefish
    回答时间: 2023-07-10 14:33:48

    __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* Add a freq to guarantee minimum wait */ if (wait < HAL_MAX_DELAY) { wait += (uint32_t)(uwTickFreq); } // while ((HAL_GetTick() - tickstart) < wait) { } } static int32_t MT48LC4M32B2_Delay(uint32_t Delay) { uint32_t tickstart; tickstart = HAL_GetTick(); // while((HAL_GetTick() - tickstart) < Delay) { } return MT48LC4M32B2_OK; }

会员中心 微信客服
客服
回到顶部