Skip to main content
mak1308
Associate III
November 16, 2017
Solved

DSI Read

  • November 16, 2017
  • 1 reply
  • 1368 views
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.
    Best answer by mak1308
    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.

    1 reply

    Nesrine M_O
    Associate
    November 16, 2017

    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
    November 17, 2017
    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.