环境:
STM32CubeIDE Ver1.5.0
TouchGFX Ver4.15.0
董事会:自定义
单片机:STM32F769BI
从 MCU 输出 RGB 并行信号。
我想输出一个65MHz的LCD_CLK,但是没有输出LCD_CLK信号。
为什么?
发射器是 25MHz,SystemClock_Config() 看起来像这样:
void SystemClock_Config(无效)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/ ** 配置主内部稳压器输出电压
* /
__HAL_RCC_PWR_CLK_ENABLE ();
__HAL_PWR_VOLTAGESCALING_CONFIG (PWR_REGULATOR_VOLTAGE_SCALE3);
/ ** 根据指定的参数初始化 RCC 振荡器
* 在 RCC_OscInitTypeDef 结构中。
* /
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | 振荡器类型 RCC_OSCILLATORTYPE_LSE;
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 15;
RCC_OscInitStruct.PLL.PLLN = 116;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 2;
如果(HAL_RCC_OscConfig(& RCC_OscInitStruct)!= HAL_OK)
{
错误处理程序();
}
/ ** 激活超速模式
* /
如果(HAL_PWREx_EnableOverDrive()!= HAL_OK)
{
错误处理程序();
}
/ ** 初始化 CPU、AHB 和 APB 总线时钟
* /
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | 时钟类型 RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
如果 (HAL_RCC_ClockConfig (& RCC_ClkInitStruct, FLASH_LATENCY_3)!= HAL_OK)
{
错误处理程序();
}
PeriphClkInitStruct.PeriphClockSelec
tion = RCC_PERIPHCLK_LTDC | RCC_PERIPHCLK_RTC
| RCC_PERIPHCLK_I2C4;
PeriphClkInitStruct.PLLSAI.PLLSAIN = 156;
PeriphClkInitStruct.PLLSAI.PLLSAIR = 2;
PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV2;
PERIPHClkInitStruct.PLLSAIDivQ = 1;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
PeriphClkInitStruct.I2c4ClockSelection = RCC_I2C4CLKSOURCE_PCLK1;
如果(HAL_RCCEx_PeriphCLKConfig(& PeriphClkInitStruct)!= HAL_OK)
{
错误处理程序();
}
}
GPIO也用HAL_LTDC_MspInit()进行如下设置。
LCD_CLK 是 PI14。
__HAL_RCC_GPIOI_CLK_ENABLE ();
GPIO_InitStruct.Pin = GPIO_PIN_15 | GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
HAL_GPIO_Init (GPIOI, & GPIO_InitStruct);
谢谢你。