I am starting to develop a graphic application for the STM32F469I-DISCO, but I am not able to switch on the LCD.
I am using STM32CubeIDE, starting with these steps:
- New project
- Board Selector
- Now I have modified the code as shown
The LED switches on and off, but the LCD is always black without any light.
int main(void)
{
HAL_Init();
SystemClock_Config();
PeriphCommonClock_Config();
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
osKernelStart();
while (1)
{
}
}
and after
void StartDefaultTask(void const * argument)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
MX_USB_HOST_Init();
__HAL_RCC_GPIOK_CLK_ENABLE();
......
__HAL_RCC_GPIOD_CLK_ENABLE();
.........
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = LCD_BL_CTRL_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(LCD_BL_CTRL_GPIO_Port, &GPIO_InitStruct);
BSP_LCD_Init();
BSP_LCD_InitEx(LCD_ORIENTATION_LANDSCAPE);
BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER_BACKGROUND, LCD_FB_START_ADDRESS);
BSP_LCD_Clear(LCD_COLOR_BLACK);
for(;;)
{
HAL_GPIO_WritePin(LED4_GPIO_Port, LED4_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LCD_BL_CTRL_GPIO_Port, LCD_BL_CTRL_Pin, GPIO_PIN_RESET);
delayMs(1000);
HAL_GPIO_WritePin(LED4_GPIO_Port, LED4_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LCD_BL_CTRL_GPIO_Port, LCD_BL_CTRL_Pin, GPIO_PIN_SET);
delayMs(1000);
osDelay(1);
}
}