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
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 RU-vid channel
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. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-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.
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 */