2014-08-30 11:15 PM
Dear friends.
Please help with the following error:
Error[Li005]: no definition for ''LTDC_LayerInit''
Here is the part of the program:
/* Initialize the LCD */
LCD_Init();
/* LCD Configuration */
LCD_LayerInit();
Both functions are located in the same stm32f429i_discovery_lcd.c file. Why LCD_Init() is ok and LCD_LayerInit() is not?
I use EWARM 7.2.
Thanks
2014-08-31 02:12 AM
LTDC not LCD
The missing function is actually in one of the library files, which needs to be part of your project. STM32F429I-Discovery_FW_V1.0.1\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_ltdc.c2014-08-31 05:41 AM
Thanks, Clive1.
Several others errors appeared and I added all required header and source files. But I still did not see anything on the screen. Bellow is the code. How can I learn to use LCD libraries? How can I find my mistake inside below code using debugger? /* Includes ------------------------------------------------------------------*/ #include ''main.h'' #include ''stm32f429i_discovery_lcd.h'' #include ''stm32f4xx.h'' #include ''stm32f4xx_ltdc.h'' #include ''stm32f4xx_fsmc.h'' /** @addtogroup Template * @{ */ int main(void) { /* Initialize the LCD */ LCD_Init(); /* LCD Configuration */ LCD_LayerInit(); /* Enable LCD display */ LCD_DisplayOn(); /* Set foreground layer */ LCD_SetLayer(LCD_FOREGROUND_LAYER); /* Clear the LCD */ LCD_Clear(LCD_COLOR_WHITE); /* Set the LCD Back Color */ LCD_SetBackColor(LCD_COLOR_WHITE); /* Set the LCD Text Color */ LCD_SetTextColor(LCD_COLOR_BLUE); LCD_DisplayStringLine(LCD_LINE_0, (uint8_t *)'' STM324x9I-EVAL ''); LCD_DisplayStringLine(LCD_LINE_1, (uint8_t *)'' Example on how to ''); LCD_DisplayStringLine(LCD_LINE_2, (uint8_t *)'' use the IO Expander ''); /* Infinite loop */ while (1) { } } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { /* User can add his own implementation to report the file name and line number, ex: printf(''Wrong parameters value: file %s on line %d\r\n'', file, line) */ /* Infinite loop */ while (1) { } } #endif2014-08-31 10:51 AM
I'd probably start by testing/review the examples for the specific board I'm using rather than a different board.
STM32F429I-Discovery_FW_V1.0.1\Projects\Peripheral_Examples\LTDC_Display_2Layers\readme.txt Then I'd evaluate what is being done differently between the two. Like configuration of pins, and external memory banks.2014-09-01 07:26 AM
Studding the example LTDC_Display_2Layers. How can I obtain the hex array of the picture (such as st_logo1.h)?
2014-09-01 08:05 AM
Generating data as an include file is a pretty simple, I've coded quick applications to do such. There are other apps that do more specific BMP conversion, colour level stuff.
http://www.segger.com/emwin-bitmap-converter.html
2014-09-01 10:24 PM
Thanks, Clive1.
The program solved the question. However I changed const uint32_t ST_LOGO_1[19200] = { 0xFFFFFFFF, ... to const uint16_t ST_LOGO_1[38400] = { 0x3161,...