OLED display using I2C with STM32
I already covered how to connect LCD 16×2 using I2C in STM32. Today we will take a step forward and interface OLED display using I2C with STM32.
The display I will be using is a 0.96″ 128×64 oled display with black and blue colors.
This display uses the I2C protocol to communicate to the microcontroller. So here you need only 2 pins i.e. SDA and SCL from the microcontroller and the VCC and GND. I am using STM32f103c8t6 but as I mentioned before, the code will remain same for all STM32 devices. I searched a lot for the libraries but all I could find were that of arduino. Than at last I found one by Alexander Lutsai, and I modified it so that it can be used with the STM32 CubeMx
Let’s get to work now. Fire up your STM32cubeMx and generate a new project for your microcontroller with I2C protcol running at 400KHz and duty cycle at I2C_DUTYCYCLE_2. By default, the library will use I2C1 handler but you can change that later in the program.
Connect the SCL of the controller with the SCL of the display and SDA to SDA by using a pull-up resistor for both the pins.
Download the code below, unzip it, Copy the fonts.h, test.h and ssd1306.h in the Inc folder of your project and fonts.c, test.c and ssd1306.c in the Src folder and open the project now.
Include the following files in the main.c:-
Open the ssd1306.c and change the handler accordingly
You can see the functions available in the functions tab under ssd1306.c or in the ssd1306.h file. I am going to initialize the display and print “Hello World !!”…
You can scroll the display LEFT, RIGHT, DIAGONAL LEFT or DIAGONAL RIGHT also. The following are the functions available to do so.
The colour of the display can be inverted using
void SSD1306_InvertDisplay (int i);
i=1 will invert the display
i=0 will normalise it.
Drawing bitmap is also supported and the following function is assigned to do so
We can also display the animation. Check out the video below, to see, how to do it.
. . . . . DOWNLOAD . . . . .
You can buy me acontrollerstech
coffeeSensor by clicking DONATE OR Just click DOWNLOAD to download the code
- WavePlayer using STM32 Discovery January 16, 2021
- How to use SPI in LPC2148 December 26, 2020
- STM32 ADC MULTI CHANNEL WITHOUT DMA December 24, 2020
- Send and Receive data to PC without UART (STM32 USB COM) December 10, 2020
- STM32 GPIO INPUT Configuration December 4, 2020
- STM32 GPIO OUTPUT Config using REGISTERS November 24, 2020