STM32H735G-DK can't change pixel format mode
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:
