UART is widely used for serial communication between two devices. It is easy to use protocol, because the clock sync is not involved. All you have to do is take care of BAUD RATE. BAUD RATE must be same for both devices, amongst which communication is done. I am going to use 9600 as it is standard.
So here I am starting I2C tutorial in STM32. I know it’s early because we still need to go through some basic things before jumping to I2C but the problem is LCD. It takes a whole lot of efforts to interface LCD using conventional methods, but by using I2C, we can do it really easy. I will cover other ways to interface LCD later in upcoming tutorials. Before using I2C to interface LCD, let’s first write a simple code to know about I2C functions.
To change the address we are provided with A0, A1 and A2 pins.
By default these three pins are high so the address by default is 01001110 which is 0x4E. To change the address of this device, you have to connect any/all of these three pins to ground, which is provided just above them. So let’s say you connected A0 to ground, new address will be 01001100 which is 0x4B. In this manner, we can connect upto 8 LCDs to the same line.
We continuously check for incoming data and when data is received, display it on the lcd.
2.) Use interrupt. Microcontroller does it’s normal operations, and whenever the data receiving completes, an interrupt is generated and ISR is executed, after completing ISR, control returns back to normal operation.