This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SPI blocked in internal_transaction_in_progress

Hi

I am porting another nRF52840 SPI OLED driver based on nRF5_SDK_14.2.0_17b948a\examples\peripheral\spi_master_using_nrf_spi_mngr

At first, it works fine without button event. (I just disable it) All graphic function can work without error in the st7565LCD.c or main() function. (e.g. draw line, rect, clear display, text can work)

But when I turn on button event and draw UI in the main.c bsp_event_handler(). SPI transation will blocked at below

        while (p_cb->internal_transaction_in_progress)
        {
            if (user_function)
            {
                user_function();
            }
        }

spi_internal_transaction_cb() wasn't call.

At the point, I checked with a logic analzyer and SPI wave form show the SPI command had been send correctly (but CS is always low after transaction) when this issue occur.

image description

The same SPI function, I can execute it correctly in the main() function. How to make this work???

Thanks.

Alan

Related