STM32CubeF7 BSP LCD尝试

我正在尝试使用STM32CubeF7的BSP库在stm32f769i-disco的LED上显示一个字符串。 然而,没有任何反应。 这是代码:

#include "stm32f7xx_hal.h" #include "stm32f769i_discovery.h" #include "stm32f769i_discovery_lcd.h" #include "stm32f7xx.h" #include  char str[] = "Hello from BSP LCD demo!"; void LCDInit() { // Initialize the LCD using the BSP_LCD_Init() function. BSP_LCD_Init(); // Select the LCD layer to be used using the BSP_LCD_SelectLayer() function. //BSP_LCD_SelectLayer(0); BSP_LCD_LayerDefaultInit(LTDC_DEFAULT_ACTIVE_LAYER, LCD_FB_START_ADDRESS); BSP_LCD_SelectLayer(LTDC_DEFAULT_ACTIVE_LAYER); // Enable the LCD display using the BSP_LCD_DisplayOn() function. BSP_LCD_DisplayOn(); // Clear the whole LCD using BSP_LCD_Clear() function or only one specified string line using the BSP_LCD_ClearStringLine() function. BSP_LCD_Clear(LCD_COLOR_LIGHTGRAY); HAL_Delay(1000); BSP_LCD_SetBackColor(LCD_COLOR_LIGHTGRAY); BSP_LCD_SetTextColor(LCD_COLOR_WHITE); // Display a character on the specified line and column using the BSP_LCD_DisplayChar() function or a complete string line using the BSP_LCD_DisplayStringAtLine() function. BSP_LCD_DisplayStringAt(100, 100, str, CENTER_MODE); } int main(void) { LCDInit(); BSP_LED_Init(LED_GREEN); while(1) { for (int i=0;i<1000000;i++); BSP_LED_Toggle(LED_GREEN); } return 0; } 

如果我取消对LCDInit的调用,我的LED会切换,如果我调用LCDInit,则没有任何反应(LED不会切换)并且LCD保持黑色。 有任何想法吗?

我基本上尝试按照stm32f769i_discovery_lcd.c中的说明操作,没有运气:

 2. Driver description: --------------------- + Initialization steps: o Initialize the LCD using the BSP_LCD_Init() function. o Select the LCD layer to be used using the BSP_LCD_SelectLayer() function. o Enable the LCD display using the BSP_LCD_DisplayOn() function. + Options o Configure and enable the color keying functionality using the BSP_LCD_SetColorKeying() function. o Modify in the fly the transparency and/or the frame buffer address using the following functions: - BSP_LCD_SetTransparency() - BSP_LCD_SetLayerAddress() + Display on LCD o Clear the whole LCD using BSP_LCD_Clear() function or only one specified string line using the BSP_LCD_ClearStringLine() function. o Display a character on the specified line and column using the BSP_LCD_DisplayChar() function or a complete string line using the BSP_LCD_DisplayStringAtLine() function. o Display a string line on the specified position (x,y in pixel) and align mode using the BSP_LCD_DisplayStringAtLine() function. o Draw and fill a basic shapes (dot, line, rectangle, circle, ellipse, .. bitmap) on LCD using the available set of functions. 

编辑:使用OpenOCD进行调试时,如果我在BSP_LCD_Init()行设置断点,gdb会挂起。 如果我再次运行调试器,我可以看到程序停留在WWDG_IRQHandler()。

如果这对任何人都有帮助,我将发布结果是我的问题(使用HAL库):

我没有特别添加任何处理覆盖中断处理程序的代码,甚至HAL_init()调用被阻止,因为我没有添加以下内容:

 void SysTick_Handler(void) { HAL_IncTick(); } 

因此,我的HAL_Delay会永远等待。 可能最好使用STM32CubeF7模板文件夹中提供的模板,在开始时,所以你不会犯同样的错误..