2020-07-13 08:41 PM
I want to get the MCU into low power mode,but I found that entering low power and exiting GFX would not work.So what should I do before going into low power?I used a DSI screen and DMA2D mode
2020-07-14 12:40 AM
Can you elaborate on "would not work" ? Thanks
2020-07-14 02:06 AM
modle::Tick () in GFX is not executing.
2020-07-14 02:09 AM
Then you probably need to manage your interrupts better - Disable and re-enable your interrupts (NVIC) upon exiting low-power mode.
If tick() is not called this is a sign that your interrupts are not triggering OSWrappers::signalVSync()
2020-07-14 03:15 AM
OSWrappers::signalVSync() is called by interrupt but no other signals are called
2020-07-14 04:06 AM
What about the Touchgfx task? the main event loop is waiting for signalVSync() to proceed.
2020-07-16 02:50 AM
I want to know that the GFX framework completes the DMA2D drawing
2020-07-16 03:50 AM
I have no idea how your project looks, but you may have something like STM32DMA.cpp which has functions to start a copy (from flash to framebuffer) or a fill. You'll also have a handler that signals TouchGFX when the transfer is done (interrupt). You could try breaking in those functions to verify that touchgfx is asking for a transfer and that the transfer completes.
/Martin
2020-07-21 02:48 AM
I found that the GFX task is not running,but OSWrappers::signalVSync()is called by interrupt
2020-08-10 03:28 AM
Back from vacation.
Is the TouchGFX task started? Check your main.cpp . If you're using FreeRTOS from within CubeMX, you need to call the Process function to start TouchGFX manually in the task handler. Here mine is called DefaultTask.
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const * argument)
{
/* USER CODE BEGIN 5 */
MX_TouchGFX_Process();
..
}