我开始为STM32F469I-DISCO开发图形应用程序,但我无法打开LCD。
我正在使用STM32CubeIDE,从以下步骤开始:
LED 开关,但 LCD 一直黑,没有任何光。
int main(void)
{
HAL_Init();
SystemClock_Config();
PeriphCommonClock_Config();
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 4096);
defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
osKernelStart();
while (1)
{
}
}
以及之后
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);
}
}
我已经使用 STM32F4xx_HAL_Driver 的不同文件并将频率设置为 360 解决了这个问题。
请我准备好完整的项目示例。