Skip to main content
mak1308
Associate III
Nov 16, 2017 12:42 PM UTC
Solved

DSI Read

Posted on November 16, 2017 at 13:42

I use the DSI interface in the STM32F469 microcontroller and I try to read this by means of the HAL_DSI_READ function - but data are read not completely, only 1 byte from four. Tell me please how it is correct to use this function, can be somewhere to eat examples?

    This topic has been closed for replies.
    mak1308
    mak1308Best answer
    Associate III
    Nov 17, 2017 11:39 AM UTC
    Posted on November 17, 2017 at 11:39

    In these examples the HAL_DSI_Read function is not used.

    I found the reason because of which the HAL_DSI_Read function worked incorrectly. When function is caused, first of all lock by a macro __ HAL_LOCK(hdsi) joins;

    Further, if the number of bytes for reading more than 2, is caused the HAL_DSI_ShortWrite function in which lock joins too! Because of it the HAL_DSI_ShortWrite function does not work and the status of HAL_Busy returns.

    Relock cannot be done - in it there was a reason.

    2 replies

    Nesrine M_O
    Associate
    Nov 16, 2017 12:50 PM UTC

    Posted on November 16, 2017 at 13:50

    Hi G.Marat,

    I recommend you to have a look to AN4860 about DSI Host on STM32F469/479, STM32F7x8/x9 and STM32L4R9/S9 MCUs

    A set of example also are provided in STM32F4 cube firmware package :

    1. STM32Cube_FW_F4_V1.0\Projects\STM32469I_EVAL\Examples\LCD_DSI
    2. STM32Cube_FW_F4_V1.0\Projects\STM32469I_EVAL\Applications\Display\LCD_DSI_ImagesSlider

     -Nesrine-

    mak1308
    mak1308AuthorBest answer
    Associate III
    Nov 17, 2017 11:39 AM UTC
    Posted on November 17, 2017 at 11:39

    In these examples the HAL_DSI_Read function is not used.

    I found the reason because of which the HAL_DSI_Read function worked incorrectly. When function is caused, first of all lock by a macro __ HAL_LOCK(hdsi) joins;

    Further, if the number of bytes for reading more than 2, is caused the HAL_DSI_ShortWrite function in which lock joins too! Because of it the HAL_DSI_ShortWrite function does not work and the status of HAL_Busy returns.

    Relock cannot be done - in it there was a reason.