Hi, i was interfacing oled with nrf52 board. I got some example and modified bit to use it with GCC. But it is now working. Oled not at all starting. oled is 0.96 inch, I2C based 128x64. Vdd = 5v sda = p0.26 scl = p0.27
Here is code github.com/.../
Hi, i was interfacing oled with nrf52 board. I got some example and modified bit to use it with GCC. But it is now working. Oled not at all starting. oled is 0.96 inch, I2C based 128x64. Vdd = 5v sda = p0.26 scl = p0.27
Here is code github.com/.../
Hi,
The problem seems to be that you are using the TWI driver in non-blocking mode, but you do not have any mechanism implemented to make sure that the previous transfer is done before starting a new transfer. If you check the return code of your calls to nrf_drv_twi_tx()
in ssd1306_command()
, you will see that you get a lot of error code 0x11 - NRF_ERROR_BUSY. This leads to that the commands is not sent to the OLED.
A simple fix to this problem is to switch to blocking mode for the TWI instance. This is done by passing NULL
to event_handler argument of nrf_drv_twi_init()
.
Best regards,
Jørgen
Yes, the backlight is enables in initialization (at least on my device). Do you get any error codes from the calls to nrf_drv_twi_tx
? Have you checked that you are using the correct address for the device? You can scan for TWI devices using the TWI scanner example.
Yes, the backlight is enables in initialization (at least on my device). Do you get any error codes from the calls to nrf_drv_twi_tx
? Have you checked that you are using the correct address for the device? You can scan for TWI devices using the TWI scanner example.