I have been trying to port an avr library for this display to stm32f0 using LL drivers. I have not got it working. One difference I noted was the library I am porting writes a 0x00 to the display to set the direction of the expander chip but I do not see that in your code. Anyways I use CubeIDE also. Pretty much like Atollic, that worked good too.
Couldn't get my code to work so I started a new project in CubeIDE, used Cube to set up the I2C, put your lcd files in source and include directories. Compiled, got an error changed from the f1 to f0 in your include file. Compiled fine, downloaded and it worked. Took me a total of 10 minutes. Now I still want to figure out why my code didn't work. Actually it worked about 1/2 the time, strange. Pretty sure it had to do with the configure part.
I also don't want hal .... I hal doesn't play nice with LL I will have to migrate my whole code to hal which I don't want . Pls how can this be done using LL LIBRARY. MY CODE IN LL doesn't work
U can't.. that function is used to send single character only. These displays only accept ascii and that's why qe need to convert the numbers to respective characters before sending them.
There is no difference in the coding part. Truestudio is open source IDE. I no longer use keil or truestudio. From now on, only stm32cubeide, as it is officially supported by ST.
Hello Controllers Tech Team, Your All Videos are very useful and knowledgeable means no time west in UA-cam. I Request to you can you make videos for IOT Protocol Link MQTT,COAP So its very much useful for us. And Ha Thank You For Making This Kind of Channel.
@@ControllersTech Its 8 pin data so only need 1 pulse signal to display character , is it right sir ? However, i dont really know how to initialize character lcd in 8-bit mode. Could you teach me ?
8 bit mode won't work with pcf8574 since it has only 4 data pins. If you want to do parallel connection, the initialization sequence is given in the lcd reference manual.
It works fine but i have activated timer1,2,3,4,5 in input capture ch1 and output ch2,, when i connect the display it works but put me up on 3,3V all the timers output... how can i resolve?
@@ControllersTech The connection of the circuit . Specifically the connection between the LCD and the STM. Also, I don't have a I2C device. Do you perhaps have a explanation of how to do this using 4 Bit mode?
There is no direct connection between stm and lcd. It's connected via I2C. I don't have a video using 4 bit mode, but i have one for lcd 16x2. This also uses the same concept and almost the same code. You can compare the codes for both and make necessary changes for 20x4
I did every step as you did successful(build and debug) and I get empty LCD. I have tried address 0x4E and 0x27(it works for Arduino and pi), also I increased the delay before initialization and gitting the same result?
for some reason I get this errors: LCD\LCD.axf: Error: L6218E: Undefined symbol lcd_init (referred from main.o). LCD\LCD.axf: Error: L6218E: Undefined symbol lcd_send_cmd (referred from main.o). LCD\LCD.axf: Error: L6218E: Undefined symbol lcd_send_string (referred from main.o). Do you know what it could be?
@@ControllersTech where did you get the i2c-lcd library? The one that I used from the LCD 2004a video you made doesn't include lcd_put_cur function. THanks!
Hi Cotrollers Tech, Your videos are always amazing. Could you please make a video on how to interface SSD1963 LCD Controller with STM32F220-G EVAL Board (STM32F207/407 microcontroller)? Thank you
I don't have the lcd for ssd1963 yet but i am planning to buy it as I have the f407 supporting board. Right now i am working on ILI9341 though. Once it is complete maybe you can refer it for your device
Hi, Thank you for your valuable reply. I will wait for you to buy and make video on ssd1963 LCD controller. Again appreciate your efforts and keep sharing the vast knowledge you have with us. Thank you so much!!
@@ControllersTech Hi Sir, your video are always very good. May you can the solution my issue: i am using a 2x16 LCD with STM32-F401RE board. On the arduino i have no issue to scann adress of LCD and to see some word but when i connect LCD to nucleo board i only see the ligth and nothing else. I tried to use scann program but nothing, i tried to use all the SCL and SDA pin on nucleo board but nothing. It is possible that this board is not support theìhis LCD? I see many tutorial on you tube and in all of them the lcd is working but on my system no. I am making crazy....
If you are using I2C, the use the address 0x4E or 0x7E. The stm Controllers generally have more than one I2C, so If you are using I2C1 then use the corect pins. Also there is no such thing as board not supporting lcd. The lcd works with I2C and as long as board has it, it will work as well.
@@ControllersTech i tried all I2C on my board with their pin, i tried both address 0x4E and 0x7E and i tried also all the SDA/SCL pin but nothing , nothing
it's very useful, hope you will make more videos like this
where can i find lcd 2004a library for STM32 SPL ?
It worked thank you so much sir
Can I use this for 16x4 LCD display.
Plz reply
What will happen if i dont change the clock setting?
I have been trying to port an avr library for this display to stm32f0 using LL drivers. I have not got it working. One difference I noted was the library I am porting writes a 0x00 to the display to set the direction of the expander chip but I do not see that in your code. Anyways I use CubeIDE also. Pretty much like Atollic, that worked good too.
Couldn't get my code to work so I started a new project in CubeIDE, used Cube to set up the I2C, put your lcd files in source and include directories. Compiled, got an error changed from the f1 to f0 in your include file. Compiled fine, downloaded and it worked. Took me a total of 10 minutes. Now I still want to figure out why my code didn't work. Actually it worked about 1/2 the time, strange. Pretty sure it had to do with the configure part.
I also don't want hal .... I hal doesn't play nice with LL I will have to migrate my whole code to hal which I don't want . Pls how can this be done using LL LIBRARY. MY CODE IN LL doesn't work
Thank you, but in this code, how can i send an data with 4 number to lcd ?
Use sprintf to conver the number to characters and then send as a string
@@ControllersTech thank you so much
@@ControllersTech I have one more question, i want to use your cmd lcd_send_data for sending data with 4 numbers, so how to solve it
U can't.. that function is used to send single character only.
These displays only accept ascii and that's why qe need to convert the numbers to respective characters before sending them.
@@ControllersTech I wanna display numbers what should i do? because i noticed that it displays always ascii
Can we use keil IDE with cube mx
Why did u use TRUE STUDIO instead of KEIL Uvision 5 here? What is the difference?
There is no difference in the coding part. Truestudio is open source IDE. I no longer use keil or truestudio. From now on, only stm32cubeide, as it is officially supported by ST.
The link to the lcd library is broken - it shows an encoding error in chrome and firefox - this is a great tutorial, just need the library link fixed!
This video is verry good...Please tell me Which lcd did you use???
Lcd 5v or lcd 3.3v thank you...
5V
@@ControllersTech thank you
Thank you for today.
Hello Controllers Tech Team,
Your All Videos are very useful and knowledgeable means no time west in UA-cam.
I Request to you can you make videos for IOT Protocol Link MQTT,COAP So its very much useful for us.
And Ha Thank You For Making This Kind of Channel.
That's going to take some serious research. And right now i don't have time.
If I want to use 8 bit mode, what will i need to change sir ?
Do you know what's 8 bit mode ?
@@ControllersTech Its 8 pin data so only need 1 pulse signal to display character , is it right sir ? However, i dont really know how to initialize character lcd in 8-bit mode. Could you teach me ?
8 bit mode won't work with pcf8574 since it has only 4 data pins.
If you want to do parallel connection, the initialization sequence is given in the lcd reference manual.
@@ControllersTech Thank you for answering sir, really appreciated.
It works fine but i have activated timer1,2,3,4,5 in input capture ch1 and output ch2,, when i connect the display it works but put me up on 3,3V all the timers output... how can i resolve?
Do you have a pinout of the circuit?
Pinout of what ?
@@ControllersTech The connection of the circuit . Specifically the connection between the LCD and the STM.
Also, I don't have a I2C device. Do you perhaps have a explanation of how to do this using 4 Bit mode?
There is no direct connection between stm and lcd. It's connected via I2C.
I don't have a video using 4 bit mode, but i have one for lcd 16x2. This also uses the same concept and almost the same code. You can compare the codes for both and make necessary changes for 20x4
Many thanks I get it now =)
where is the link to download librery?
description
I did every step as you did successful(build and debug) and I get empty LCD. I have tried address 0x4E and 0x27(it works for Arduino and pi), also I increased the delay before initialization and gitting the same result?
Don't try with 0x27. Keep trying with 0x4E. Try connecting 4k7 pull up resistor to scl and sda lines
@@ControllersTech no change sir
How about contrast ? Try changing that.
@@ControllersTech I do. Actually it works without i2c but i2c very important
Try using address 0x7E..
If doesn't work, telegram me @controllerstech
for some reason I get this errors:
LCD\LCD.axf: Error: L6218E: Undefined symbol lcd_init (referred from main.o).
LCD\LCD.axf: Error: L6218E: Undefined symbol lcd_send_cmd (referred from main.o).
LCD\LCD.axf: Error: L6218E: Undefined symbol lcd_send_string (referred from main.o).
Do you know what it could be?
Did u include the file in the main.c file..
@@ControllersTech yes, but it did not appear on the side folder bar, I switched from Keil to CubeIDE and it worked, I don't know why
In keil, you need to include the path of the library file also, somewhere in the settings.
@@ControllersTech where did you get the i2c-lcd library? The one that I used from the LCD 2004a video you made doesn't include lcd_put_cur function. THanks!
I wrote the library myself
pls share i2c-lcd.c and i2c-lcd.h file link .
Read the description.
Hi Cotrollers Tech,
Your videos are always amazing.
Could you please make a video on how to interface SSD1963 LCD Controller with STM32F220-G EVAL Board (STM32F207/407 microcontroller)?
Thank you
I don't have the lcd for ssd1963 yet but i am planning to buy it as I have the f407 supporting board. Right now i am working on ILI9341 though. Once it is complete maybe you can refer it for your device
Hi,
Thank you for your valuable reply.
I will wait for you to buy and make video on ssd1963 LCD controller.
Again appreciate your efforts and keep sharing the vast knowledge you have with us.
Thank you so much!!
@@ControllersTech Hi Sir, your video are always very good. May you can the solution my issue: i am using a 2x16 LCD with STM32-F401RE board. On the arduino i have no issue to scann adress of LCD and to see some word but when i connect LCD to nucleo board i only see the ligth and nothing else. I tried to use scann program but nothing, i tried to use all the SCL and SDA pin on nucleo board but nothing. It is possible that this board is not support theìhis LCD? I see many tutorial on you tube and in all of them the lcd is working but on my system no. I am making crazy....
If you are using I2C, the use the address 0x4E or 0x7E.
The stm Controllers generally have more than one I2C, so If you are using I2C1 then use the corect pins.
Also there is no such thing as board not supporting lcd. The lcd works with I2C and as long as board has it, it will work as well.
@@ControllersTech i tried all I2C on my board with their pin, i tried both address 0x4E and 0x7E and i tried also all the SDA/SCL pin but nothing , nothing