If Blank screen, please check for 5 Volt for VCC supply, potentiometer adjustment or i2c address modification on the solder pads etc. If itoa function gives you an error, use sprintf instead of itoa as shown below sprintf(snum,"%d", x); You need to include stdio.h for this function as shown below /* USER CODE BEGIN Includes */ #include "stdio.h" /* USER CODE END Includes */
This guy is a star !!! 100% top stuff .... easy, simple, quick and easily usable with other STM32 models.... saved me lots of work.... other videos was making dramas and wasting lots of time and still didn't get it work but this worked in minutes on first attempt....... VERY COOL STUFF
Depending on the connector (A0 - A2) on the i2c board your address might be from 20 to 27. So you can search for info or try all addresses. On my board jumper A0 was connected, so address was 26. Otherwise everything works, thanks for tutorial.
I'd like more info on this cause mine is not working and I'm quite sure it is that address issue. Neither A0, A1 or A2 are jumpered on my board. You said "search for info" .... where do we do that ? I have some sort of rotary switch. How does all this addressing work ? Thanks.
@@garetts8156 I didn't see a table. In any event, I got this off of Google "If your LCD has a Texas Instruments’ PCF8574 chip, its default I2C address is 0x27Hex. If your LCD has NXP Semiconductors’ PCF8574 chip, its default I2C address is 0x3FHex.". Sure enough, mine is a NXP chip. Other than address, not sure what other code changes need to happen.
Thanks for the video and explanation. I tried to follow micropeta page code but unable to get my LCD to work. The code uploaded but nothing is displayed on my LCD. Are there other configuration needed beside the I2C1 init. Here my i2c setting, not sure if the address 0x27 is correct. hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 78; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; if (HAL_I2C_Init(&hi2c1) != HAL_OK) { Error_Handler(); }
There are no other configuration besides I have shown on video and docs. After selecting I2C, Set PB8 to I2C1_SCL Set PB9 to I2C1_SDA If the jumper behind the LCD not modified, the address is 0x27. The address for cubeide is (0x27
Does not work for stm32F103C6T6, except clearing screen no other sign. Though I changed for appriopriate HAL library, and trying change address. Have you any suggestion?
It worked with stm32f103c8t6. ruclips.net/video/l-JVnlJIPao/видео.html as far as stm32f103c6t6, if there are no errors regarding memory shortage and code uploading goes well, then it should work check for 5Volt supply, potentiometer adjustment or i2c address modification on the solder pads etc..
Can't get mine to work. It's an NXP chip as opposed to TI and apparently needs a different address which I supplied. Still doesn't work. does that rotary switch have any bearing on the address ? I have nothing jumpered. Founds this online "The I2C address of your LCD depends on the manufacturer, as mentioned earlier. If your LCD has a Texas Instruments’ PCF8574 chip, its default I2C address is 0x27Hex. If your LCD has NXP Semiconductors’ PCF8574 chip, its default I2C address is 0x3FHex." I've tried both addresses but neither worked.
@@NizarMohideen Yes I did that per my other posting but it still doesn't work. Will try some pull ups next. I'd still like to know what the rotary switch is all about. I would think it must have something to do with addressing ???
Oddly enough this came to life when I changed back to the alleged TI address 0x27 even though I had a NXP chip.. I also simultaneously added 10 k pull ups. Don't which or if both measures brought it to life. Awesome tutorial !! I look forward to watching your other tutorials.
Well my lcd at least lit up after i changed to another one and put pull ups on it. The display backlight toggled every few seconds which I assumed might have been the program running but my display is saturated off a 5v supply and now I'm wondering if this blue rotary switch is in fact the contrast pot ??
4.7K for frequency under 100Kbps 2.2K for ~100Kbps 1K for more than 100Kbps From my Microprocessors class today, discussing the same kind of i2c utilization with a different development board; these values above should be standard, to the Vcc rail.
Hello... Thank you so much for this interesting video.. I have nucleo L476, i tried lcd shield using Arduino IDE, i have no result... The LCD didn't work , while it worked well with my Arduino uno
I understood you tried nucleo L476 lcd shield using Arduino IDE. I suggest to try with STM32CubeIDE. Installation of STM32CubeIDE is in video no 50 in my RUclips channel
Hi! I have a problem with the writing, my LCD turn on and turn off the background light but doesn't write anything. My board is the F401RE. Do you know what is the problem? Is the address? Thank you!
If itoa function gives you an error, use sprintf instead of itoa as shown below sprintf(snum,"%d", x); You need to include stdio.h for this function as shown below /* USER CODE BEGIN Includes */ #include "stdio.h" /* USER CODE END Includes */
Hi every ones. My 16x02 LCD is working fine in arduino, my STM32 U575ZI-Q is working fine on the other project, the CIP on I2C is PCF8574T and by using all the combination described in all comment below, still I see only the backlight on the 1st line of the LCD on the LCD. Help please
Use sprintf instead of itoa as shown below sprintf(snum,"%d", x); You need to include stdio.h for this function as shown below /* USER CODE BEGIN Includes */ #include "stdio.h" /* USER CODE END Includes */
If Blank screen, please check for 5 Volt for VCC supply, potentiometer adjustment or i2c address modification on the solder pads etc.
If itoa function gives you an error, use sprintf instead of itoa as shown below
sprintf(snum,"%d", x);
You need to include stdio.h for this function as shown below
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
This guy is a star !!! 100% top stuff .... easy, simple, quick and easily usable with other STM32 models.... saved me lots of work.... other videos was making dramas and wasting lots of time and still didn't get it work but this worked in minutes on first attempt....... VERY COOL STUFF
Very fast, easy and professional. you are the best.
this man is single handedly saving my academic life haha thank you, means alot.
Excellent video, thanks for all Mr. Nizar.
Glad you liked it!
Very good congratullations
Very good video!! Just a doubt, which is the LCD display you used? Could upload the link to buy it? Thanks a lot.
HOW CAN I SEE THE "DISTANCE" VALUE ON THE LCD SCREEN WITH HCSR04?
it works well but I am trying to use it with 20X4 lcd and I am struggling to...... can you help ???
Thank you very much!! I owe you
Very nice presentation. Subscribed for sure !! Write a book.
Hi sir How can I print Integer in my lcd? what to use instead of HD44780_PrintStr?
everything is working but the backlight is not turning on can you help us out with this problem?
Will the same code work for stm32f767 Nucleo 144? , Thanks
Does someone know which is the LCD 1602 Display he is using? Thank you!!!!! :)
Sir for me it's only turn off n turn on is happening, it's not writting anything?
can't display float?
Hi, can I use the same code for lcd1604??
Hi, it gives this error: ../Core/Src/liquidcrystal_i2c.c:3:8: error: unknown type name 'I2C_HandleTypeDef'
i did the same but it doesn't work
great it works
Depending on the connector (A0 - A2) on the i2c board your address might be from 20 to 27. So you can search for info or try all addresses. On my board jumper A0 was connected, so address was 26. Otherwise everything works, thanks for tutorial.
Thanks for the info!
I'd like more info on this cause mine is not working and I'm quite sure it is that address issue. Neither A0, A1 or A2 are jumpered on my board. You said "search for info" .... where do we do that ? I have some sort of rotary switch. How does all this addressing work ? Thanks.
According to that table your address is 0x27
@@garetts8156 Sorry, where is this table ?
@@garetts8156 I didn't see a table. In any event, I got this off of Google "If your LCD has a Texas Instruments’ PCF8574 chip, its default I2C address is 0x27Hex. If your LCD has NXP Semiconductors’ PCF8574 chip, its default I2C address is 0x3FHex.". Sure enough, mine is a NXP chip. Other than address, not sure what other code changes need to happen.
Thanks for the video and explanation. I tried to follow micropeta page code but unable to get my LCD to work. The code uploaded but nothing is displayed on my LCD. Are there other configuration needed beside the I2C1 init. Here my i2c setting, not sure if the address 0x27 is correct.
hi2c1.Instance = I2C1;
hi2c1.Init.ClockSpeed = 100000;
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c1.Init.OwnAddress1 = 78;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c1.Init.OwnAddress2 = 0;
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
{
Error_Handler();
}
There are no other configuration besides I have shown on video and docs.
After selecting I2C,
Set PB8 to I2C1_SCL
Set PB9 to I2C1_SDA
If the jumper behind the LCD not modified, the address is 0x27. The address for cubeide is (0x27
@@NizarMohideen I have finally got a new LCD with PF8574 backpack and it works like a charm. Thanks.
Thanks.
Does not work for stm32F103C6T6, except clearing screen no other sign. Though I changed for appriopriate HAL library, and trying change address. Have you any suggestion?
It worked with stm32f103c8t6. ruclips.net/video/l-JVnlJIPao/видео.html
as far as stm32f103c6t6, if there are no errors regarding memory shortage and code uploading goes well, then it should work
check for 5Volt supply, potentiometer adjustment or i2c address modification on the solder pads etc..
@@NizarMohideen Thanks.
Can't get mine to work. It's an NXP chip as opposed to TI and apparently needs a different address which I supplied. Still doesn't work. does that rotary switch have any bearing on the address ? I have nothing jumpered. Founds this online "The I2C address of your LCD depends on the manufacturer, as mentioned earlier. If your LCD has a Texas Instruments’ PCF8574 chip, its default I2C address is 0x27Hex. If your LCD has NXP Semiconductors’ PCF8574 chip, its default I2C address is 0x3FHex." I've tried both addresses but neither worked.
Line no 58 of liquidcrystal_i2c.h, change to #define DEVICE_ADDR (0x27
@@NizarMohideen Yes I did that per my other posting but it still doesn't work. Will try some pull ups next. I'd still like to know what the rotary switch is all about. I would think it must have something to do with addressing ???
Oddly enough this came to life when I changed back to the alleged TI address 0x27 even though I had a NXP chip.. I also simultaneously added 10 k pull ups. Don't which or if both measures brought it to life. Awesome tutorial !! I look forward to watching your other tutorials.
Thanks
Yes the code is uploaded successfully but there is no output on the screen. My screen is blue not green as in the video.
I'm having the same problem. Did you end up finding a fix?
@@sebass4379 Yes I did,try adjust the contrast on the I2C module and it should work
can you do it with INMP411 module
I am sorry. I don't have INMP411 module with me at the moment
What about external pull ups on the I2C lines ?
If you use long wires between MCU and display, then pull ups necessary. If short wires, then it is optional. Thanks
@@NizarMohideen Not sure what qualifies as long but I'll try a couple of 10K's on those lines.
Well my lcd at least lit up after i changed to another one and put pull ups on it. The display backlight toggled every few seconds which I assumed might have been the program running but my display is saturated off a 5v supply and now I'm wondering if this blue rotary switch is in fact the contrast pot ??
4.7K for frequency under 100Kbps
2.2K for ~100Kbps
1K for more than 100Kbps
From my Microprocessors class today, discussing the same kind of i2c utilization with a different development board; these values above should be standard, to the Vcc rail.
Hello... Thank you so much for this interesting video..
I have nucleo L476, i tried lcd shield using Arduino IDE, i have no result...
The LCD didn't work , while it worked well with my Arduino uno
I understood you tried nucleo L476 lcd shield using Arduino IDE. I suggest to try with STM32CubeIDE. Installation of STM32CubeIDE is in video no 50 in my RUclips channel
Hi! I have a problem with the writing, my LCD turn on and turn off the background light but doesn't write anything. My board is the F401RE. Do you know what is the problem? Is the address? Thank you!
There's a blue thing on the back of the LCD display. You have to tighten it with a screwdriver
I FIGURED IT OUT! Just tighten the screw at the back of the display.
I am using STM32F407 it is working fine for 16x4LCD.Sir is it also work for 20x4LCD or not ??
Yes it can work but littel bit changes are required 😊
My code encounters an error related to itoe, please help me bro.
If itoa function gives you an error, use sprintf instead of itoa as shown below
sprintf(snum,"%d", x);
You need to include stdio.h for this function as shown below
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
Thanks, i tried with STM32L432Kc and its work. i need to read the data (from usart2), how can i modify the code, please
Sure. you can use usart2
Thanks
if any examples can I found
Hi every ones. My 16x02 LCD is working fine in arduino, my STM32 U575ZI-Q is working fine on the other project, the CIP on I2C is PCF8574T and by using all the combination described in all comment below, still I see only the backlight on the 1st line of the LCD on the LCD. Help please
Line no 58 of liquidcrystal_i2c.h, change to #define DEVICE_ADDR (0x27
@@NizarMohideen He, as i wrote at firt, I tried all combination, also considering the 4E defoult address. Nothing to do, i see no sentence on my scree
the status of the A0 A1 and A2 on the chip of the IC on the screen are not jumpered, but it is not working, i dont know what esle i can do
Did you adjust the potentiometer on the backside
@@NizarMohideen good evening. For sure i did. In Arduino all working. Only on STM32 i am facing so much. I try all possible things.
Although I have done everything completely step by step and even though I have not received errors, I do not see any writing on the screen.
I also face the same thing..the code is uploaded successfully but not output on the screen
Will the same code work for stm32f401re?
Although I haven't tested it using stm32f401re, it should work with it.
Thanks
When you selected your module just select your one and everything else same.... I used STM32F411RE and it worked with 20X4 LCD no problem
@@damiansklencik6830 which module bro..? mine is not working.
sir itoa function gives me error,what should i do
Use sprintf instead of itoa as shown below
sprintf(snum,"%d", x);
You need to include stdio.h for this function as shown below
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
@@NizarMohideen thank you sir, it's working
Класс!!! Спасибо!!!!!! Очень качественное видео!! И присутствует программный код!!!!!
Повторил!!! Работает!! Только адрес выставил 0x3FHex