2014-01-14 12:28 PM
Hello everybody.
I am new in the foro and I'm working with stm32f4 discovery also I'm working with a TFT LCD 7'' 800x480pixels SSD1963 controller but I haven't found a standard library for this TFT, someone have an example with the library please?. #stm32f4-tft-ssd1289 #libraries-ssd1963-discovery #libraries-ssd1963-discovery #logic-analyzer #know-your-tools2014-01-15 12:03 PM
I attach one of my old project i made with a stm32f407 last year.
LCD.c and LCD.h are the only file you need. And with ssd1963 nothing is ... standard ... all depend on the screen you are using for set the good timing on FSMC bus. It's why i discontinued this project ;) .. i don't like reinvent the wheel on every different screen i use ... he he .. For info , the screen was a 480 x 272 pixels , just change the parameters in the init driver and in the #declares. Cya. ________________ Attachments : stm1963_-_2013-05-12-2143.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HzsZ&d=%2Fa%2F0X0000000bQZ%2FO8_Jd2o3E3_PmvfHYwSYJWXWbd8PYd8jabPM_15PwM4&asPdf=false2014-01-15 01:40 PM
thank you very much for your help. one question? is project complete?, because I have a lot of error maybe the linker, I will try to resolve the problem. this is the message:
Rebuild target 'stm1963'assembling startup_stm32f4xx.s...compiling misc.c...compiling stm32f4xx_dbgmcu.c...compiling stm32f4xx_dma.c...compiling stm32f4xx_exti.c...compiling stm32f4xx_flash.c...stm32f4xx_library\src\stm32f4xx_flash.c(434): warning: #550-D: variable ''tmp_psize'' was set but never usedcompiling stm32f4xx_fsmc.c...compiling stm32f4xx_gpio.c...compiling stm32f4xx_rcc.c...compiling stm32f4xx_rng.c...compiling stm32f4xx_rtc.c...compiling stm32f4xx_sdio.c...compiling stm32f4xx_syscfg.c...compiling stm32f4xx_tim.c...compiling fonts.c...compiling fsmc.c...user\fsmc.c(9): error: #20: identifier ''FSMC_NORSRAMInitTypeDef'' is undefineduser\fsmc.c(10): error: #20: identifier ''FSMC_NORSRAMTimingInitTypeDef'' is undefineduser\fsmc.c(11): error: #20: identifier ''GPIO_InitTypeDef'' is undefineduser\fsmc.c(12): warning: #223-D: function ''FSMC_NORSRAMDeInit'' declared implicitlyuser\fsmc.c(12): error: #20: identifier ''FSMC_Bank1_NORSRAM2'' is undefineduser\fsmc.c(15): warning: #223-D: function ''RCC_AHB1PeriphClockCmd'' declared implicitlyuser\fsmc.c(15): error: #20: identifier ''RCC_AHB1Periph_GPIOD'' is undefineduser\fsmc.c(15): error: #20: identifier ''RCC_AHB1Periph_GPIOE'' is undefineduser\fsmc.c(15): error: #20: identifier ''RCC_AHB1Periph_GPIOF'' is undefineduser\fsmc.c(16): error: #20: identifier ''RCC_AHB1Periph_GPIOG'' is undefineduser\fsmc.c(19): warning: #223-D: function ''RCC_AHB3PeriphClockCmd'' declared implicitlyuser\fsmc.c(19): error: #20: identifier ''RCC_AHB3Periph_FSMC'' is undefineduser\fsmc.c(50): warning: #223-D: function ''GPIO_PinAFConfig'' declared implicitlyuser\fsmc.c(50): error: #20: identifier ''GPIO_PinSource0'' is undefineduser\fsmc.c(50): error: #20: identifier ''GPIO_AF_FSMC'' is undefineduser\fsmc.c(51): error: #20: identifier ''GPIO_PinSource1'' is undefineduser\fsmc.c(52): error: #20: identifier ''GPIO_PinSource4'' is undefineduser\fsmc.c(53): error: #20: identifier ''GPIO_PinSource5'' is undefineduser\fsmc.c(54): error: #20: identifier ''GPIO_PinSource8'' is undefineduser\fsmc.c(55): error: #20: identifier ''GPIO_PinSource9'' is undefineduser\fsmc.c(56): error: #20: identifier ''GPIO_PinSource10'' is undefineduser\fsmc.c(57): error: #20: identifier ''GPIO_PinSource11'' is undefineduser\fsmc.c(58): error: #20: identifier ''GPIO_PinSource12'' is undefineduser\fsmc.c(59): error: #20: identifier ''GPIO_PinSource13'' is undefineduser\fsmc.c(60): error: #20: identifier ''GPIO_PinSource14'' is undefineduser\fsmc.c(61): error: #20: identifier ''GPIO_PinSource15'' is undefineduser\fsmc.c(63): error: #20: identifier ''GPIO_Pin_0'' is undefineduser\fsmc.c(63): error: #20: identifier ''GPIO_Pin_1'' is undefineduser\fsmc.c(63): error: #20: identifier ''GPIO_Pin_4'' is undefineduser\fsmc.c(63): error: #20: identifier ''GPIO_Pin_5'' is undefineduser\fsmc.c(64): error: #20: identifier ''GPIO_Pin_8'' is undefineduser\fsmc.c(64): error: #20: identifier ''GPIO_Pin_9'' is undefineduser\fsmc.c(64): error: #20: identifier ''GPIO_Pin_10'' is undefineduser\fsmc.c(64): error: #20: identifier ''GPIO_Pin_11'' is undefinedcompiling functions.c...user\functions.c(27): error: #20: identifier ''GPIO_InitTypeDef'' is undefineduser\functions.c(29): warning: #223-D: function ''RCC_AHB1PeriphClockCmd'' declared implicitlyuser\functions.c(29): error: #20: identifier ''RCC_AHB1Periph_GPIOF'' is undefineduser\functions.c(31): error: #20: identifier ''GPIO_Pin_6'' is undefineduser\functions.c(32): error: #20: identifier ''GPIO_Mode_OUT'' is undefineduser\functions.c(33): error: #20: identifier ''GPIO_OType_PP'' is undefineduser\functions.c(34): error: #20: identifier ''GPIO_PuPd_UP'' is undefineduser\functions.c(35): error: #20: identifier ''GPIO_Speed_50MHz'' is undefineduser\functions.c(36): warning: #223-D: function ''GPIO_Init'' declared implicitlycompiling Julija.c...user\Julija.c(99): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(130): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(161): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(192): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(223): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(253): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(283): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(314): warning: #1035-D: single-precision operand implicitly converted to double-precisionuser\Julija.c(315): warning: #1035-D: single-precision operand implicitly converted to double-precisioncompiling LCD.c...user\LCD.c(39): warning: #223-D: function ''GPIO_ResetBits'' declared implicitlyuser\LCD.c(39): error: #20: identifier ''GPIO_Pin_0'' is undefineduser\LCD.c(41): warning: #223-D: function ''GPIO_SetBits'' declared implicitlyuser\LCD.c(45): error: #20: identifier ''GPIO_Pin_7'' is undefineduser\LCD.c(432): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(434): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(436): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(436): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(440): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(442): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(444): warning: #186-D: pointless comparison of unsigned integer with zerouser\LCD.c(444): warning: #186-D: pointless comparison of unsigned integer with zerocompiling main.c...user\main.c(21): error: #20: identifier ''TIM_TimeBaseInitTypeDef'' is undefineduser\main.c(22): error: #20: identifier ''TIM_OCInitTypeDef'' is undefineduser\main.c(505): warning: #223-D: function ''GPIO_ResetBits'' declared implicitlyuser\main.c(505): error: #20: identifier ''GPIO_Pin_6'' is undefineduser\main.c(508): warning: #223-D: function ''GPIO_SetBits'' declared implicitlyuser\main.c(521): warning: #223-D: function ''GPIO_ResetBits'' declared implicitlyuser\main.c(521): error: #20: identifier ''GPIO_Pin_6'' is undefineduser\main.c(525): warning: #223-D: function ''GPIO_SetBits'' declared implicitlyuser\main.c(557): warning: #223-D: function ''GPIO_ResetBits'' declared implicitlyuser\main.c(557): error: #20: identifier ''GPIO_Pin_6'' is undefineduser\main.c(560): warning: #223-D: function ''GPIO_SetBits'' declared implicitlycompiling sram.c...compiling stm32f4xx_it.c...compiling system_stm32f4xx.c...compiling Timing.c...user\Timing.c(11): error: #20: identifier ''RCC_ClocksTypeDef'' is undefineduser\Timing.c(13): warning: #223-D: function ''RCC_GetClocksFreq'' declared implicitlyTarget not createdmmm... maybe I'll Add all standards libraries GPIO, RCC, TIM, etc. I'll try to do it and I'll change the driver :)Best Regard.2014-01-15 02:57 PM
It was working for me ;)
Don't forget to set the path to the different folder or it will never compile. and try to just use LCD.c and LCD.h in your project , the rest was specific to my extra hardware (External PSRAM etc ... ) void FSMC_LCD_Config(void) in fsmc.c is to modify for your LCD pins void LCD_Init(void) is the most important , when the LCD is initialized just look you can use the : void LCD_SetPoint(uint16_t Xpos,uint16_t Ypos,uint16_t color) when pixels appear , you can then look the rest.2014-01-16 02:02 PM
Hello. I need help x_x, I have configured the initialization and I have changed the GPIO pins. similar to this page:
https://sites.google.com/site/miguelmoreto/home-eng/projects/stm32f4-adapter-board2
in... LCD connections. In this page talk about HY32D LCD controller but, my LCD controller is SSD1963 and I have adapted it to mine. I was studying about the ''FSMC'' and others peripherals and I have idea as how it work I used 16bits BUS. So I'm not sure about the timing of FSMC in the TFT, I have left my code based in yours with my configuration of inicialization. Thank you very much. Best Regards. ________________ Attachments : stm1963.rar : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HzsY&d=%2Fa%2F0X0000000bQa%2FKAuKQKtadTSAwBL3Iae3H_fCeSe4KdaOjdbRw6myinE&asPdf=false2014-03-30 12:10 AM
Hello vader.darth.
I'm continious my last work with the TFT of controller SSD1963, and I probed your source code, but that does not work, and I tried to change the time or clock and the HCLK for a slow process in the FSMC but I don't have positive results. about your code I don't understand very good :\ because you have a lot of comments and in some cases you use two similar function like as: LCD_CtrlLinesConfig and LCD_CtrlLinesConfig1 or LCD_FSMCConfig1 and LCD_FSMCConfig. is it possible that you explain this stage? I have leart more about the FSMC in this time.Thanks.2014-03-30 04:35 AM
Hi,
I think you made confusion between my code and the HY32D LCD related to the post from Medina , i don't have this function in my driver ;) And this project is discontinued since more than one year now and i no more have the material for made further test. It was because the ssd1963 and allot of sort of different LCD (and parameters) on the market that i no more use it. On my point it is allot more easy to get a cheap st429 disco , remove the LCD and put a bigger one on the external pins. So you can use directly the integrated lcd driver without use of any ssd1963 or other thing like that ;). And for sure it work allot faster and better !! Cheers. PS: if you prefer no more use LCD but directly VGA , take a look here :2014-03-30 10:46 AM
Yes, but I need a big TFT for a special project :\ mmm.. yes you have the reason I've used another library blend with yours, I compilated your code and there are many error :\ similar to the last one. I don't know why there are many error if you say that this code compile very good :/..
The pin PG10 <-> FSMC_NE3 | LCD CS isn't visible in the stm32f4 discovery :S the CS is necessary for the configuration :( or is possible change for another pin?I've using keil uVision 4Thanks.2014-03-30 02:53 PM
I compiled your code and there are many error :\ similar to the last one. I don't know why there are many error if you say that this code compile very good :/..
Yeah, it's because you don't know your tools well enough to actually create a project properly, and consequently you get errors. It's your fault there are errors. Suggest you review the template/example project supplied by ST, and understand how they are internally configured/structured. Create a shell project that works with your board, and tool configuration, if that is easier, and then merge in the other source. Using other people's projects tend to depend significantly on how they install the tool chain, and where they placed the source and library components. Unzipping files under the Desktop can also cause grief.2014-03-30 03:46 PM
Yes, I understand why of the errors, I copied the file on the desktop and I had not the correct direction of the libraries, well, I have problem with the configuration of the FSMC for configurate the TFT and I changed some GPIO because the stm32f4 discovery have not the GPIO G10 :/. I believe I have to learn to use the LA (logic analyzer) but using the specifict pins of FSMC for look the correct configuration :/. I need to learn more keil and how create a .ini u.u