cancel
Showing results for 
Search instead for 
Did you mean: 

DSI Read

mak1308
Associate III
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?

1 ACCEPTED SOLUTION

Accepted Solutions
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.

View solution in original post

2 REPLIES 2
Nesrine M_O
Lead II

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-

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.