cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H735G-DK can't change pixel format mode

wegi01
Associate III

Hello,

I'm working on the STM32H735G-DK and try to change LTDC pixel format mode on the fly, but it doesn't work. I'm using the BSP example from example board pack in CubeMX for this board. After reset is possible setup the first time pixel format, but whatever I did after it never work. I tried even did full deinit with HAL_Deinit(), but it simply doesn't work. Pckage version is STM32Cube_FW_H7_V1.12.1

For example this functionality (changing LTDC pixel format) working without any problem on the STM32U5G9J-DK2.

 

The main() function where I tried doing this looks like:

int main(void)
{
  MPU_Config();
  CPU_CACHE_Enable();
  HAL_Init();

  /* Configure the system clock to 520 MHz */
  SystemClock_Config()
  HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSE, RCC_MCODIV_1);
  BSP_LED_Init(LED1);

  /*##-1- Initialize the LCD #################################################*/
  /* Initialize the LCD */
  //BSP_LCD_Init(0, LCD_ORIENTATION_LANDSCAPE);
  BSP_LCD_InitEx(0, 1, LCD_PIXEL_FORMAT_RGB565, 480, 272);
  UTIL_LCD_SetFuncDriver(&LCD_Driver);


  uint32_t * pBuffAddr  = (uint32_t*) 0x70000000; // clr buff addr
  uint8_t  * pFrameAddr = (uint8_t* ) 0x70000000; // read pic into

  // clear 2 framebuffers size
  for(uint32_t i = 0; i < (480*272*2);i++){
  	pBuffAddr[i] = 0;
  }
  BSP_LCD_SetBrightness(0, 100); // 0-100%

  BSP_OSPI_NOR_Init_t Flash;


  BSP_OSPI_NOR_DeInit(0);
  Flash.InterfaceMode = BSP_OSPI_NOR_OPI_MODE;
  Flash.TransferRate = BSP_OSPI_NOR_DTR_TRANSFER;
  BSP_OSPI_NOR_Init(0, &Flash);


  BSP_OSPI_NOR_Read(0, pFrameAddr, 0, 261120);
  BSP_OSPI_NOR_DeInit(0);

  HAL_Delay(1111);

  // clear 2 framebuffers size
  for(uint32_t i = 0; i < (480*272*2);i++){
  	pBuffAddr[i] = 0;
  }
  //-------------------------------------------------
  //- below unsuccessful try to change pixel format -
  //-------------------------------------------------
  BSP_LCD_DeInit(0);
  BSP_LCD_Init(0, LCD_ORIENTATION_LANDSCAPE);
  BSP_LCD_SetBrightness(0, 100); // 0-100%
  UTIL_LCD_SetFuncDriver(&LCD_Driver);
  

  // clear 2 framebuffers size
  for(uint32_t i = 0; i < (480*272*2);i++){
  	pBuffAddr[i] = 0;
  }
  //-------------------------------------------------
  //-------------------------------------------------
  //-------------------------------------------------

extern void main_app(void);
  while(1) {
	  __NOP();
	  main_app();
  }
}

 

added video how it behavior:

 

 

 

2 REPLIES 2
MOBEJ
ST Employee

Hello @wegi01 ,

For STM32H735G-DK, did you try the LTDC example from STM32CubeH7 GitHub site ?

For STM32U5, which  example are you using ,BSP examples ?  and what exact changes did you make (clock, LTDC timings, framebuffer, pixel format, etc.)?

Br

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hello,

 

I used the BSP example stored in firmware Cube pack for STM32U5 MCU. It doesn't have the ioc file for manipulate setup values. All setup/clock and so on values are hardcoded directly in this example.

 

I didn't change clock just I tried change LTDC pixel format without success as I mentioned. 

BR