2019-03-28 02:08 AM
Use cubemx to generate the project, then use the slider effect to switch screen and everything will run fine in the simulator.But I burned MDK to the hardware and didn't see the slider effect.Is there something wrong with the transplant?
Solved! Go to Solution.
2019-05-08 12:23 AM
hi @lxw,
Glad you found that on your own =) For clarity, and others, let's look at the signature for setFrameBufferStartAddress(). e.g., if you want a 16-bit application, double buffering with animation storage enabled, you'd just ommit every argument but the first one (the framebuffer address):
/**
* @fn virtual void HAL::setFrameBufferStartAddress(void* adr, uint16_t depth = 16, bool useDoubleBuffering = true, bool useAnimationStorage = true)
*
* @brief Sets the address used for frame buffers, usually located in external memory.
*
* Sets the address used for frame buffers, usually located in external memory. Will
* reserve memory for one or two frame buffers based on display size. Will optionally
* also reserve memory for a third frame buffer used for animationStorage.
*
* @param [in] adr Starting address to use for frame buffers.
* @param depth (Optional) Depth of each pixel in bits, default is 16.
* @param useDoubleBuffering (Optional) If true, reserve memory for an extra frame buffer.
* @param useAnimationStorage (Optional) If true, reserve memory for animation storage.
*
* @deprecated Use the setFramaBufferStartAddress with 'format' parameter instead of 'depth'
*/
virtual void setFrameBufferStartAddress(void* adr, uint16_t depth = 16, bool useDoubleBuffering = true, bool useAnimationStorage = true)
2019-03-28 06:19 AM
Hi,
Are you sure you've programmed the external flash with image assets correctly?
/Martin
2019-04-25 05:59 PM
2019-04-29 01:56 AM
What exactly is it you've tried? Which program are you using to program the QSPI flash of the board? I suggest you just use ST-Link or CubeProgrammer.
2019-04-29 08:38 PM
I didn't use the QSPI to store the data.You can open the program I provided and have a look. Screen has only box and buttons.Screen has only box and buttons.There is a sliding interface for switching between emulators, but not on the f469i_discovery board.
2019-05-06 02:58 AM
Do you have time to take a look? Thank you
2019-05-07 12:50 AM
Hi again,
I took a quick look. Are you saying that you can switch screens but don't see the slide effect? For a screen transition animation to work you must have memory available for what we currently call the "animation storage".
/Martin
2019-05-07 04:02 AM
Thank you very much!!!
Q1: Are you saying that you can switch screens but don't see the slide effect?
Yes.Where can I view the size of animation storage and set it? Do I need to enable USE_DOUBLE_BUFFERING equal to 1?
Q2:In 24-bit deep 800x480, use partition refresh.Why set the TE signal line scanline to 533 in LCD_ReqTear() instead of any other value?
2019-05-08 12:05 AM
Thank you very much!!!
Hal. SetFrameBufferStartAddress (frameBuf0 bitdepth, false, true) the last item is set to true, the sliding effect can be achieved.:* :*
2019-05-08 12:23 AM
hi @lxw,
Glad you found that on your own =) For clarity, and others, let's look at the signature for setFrameBufferStartAddress(). e.g., if you want a 16-bit application, double buffering with animation storage enabled, you'd just ommit every argument but the first one (the framebuffer address):
/**
* @fn virtual void HAL::setFrameBufferStartAddress(void* adr, uint16_t depth = 16, bool useDoubleBuffering = true, bool useAnimationStorage = true)
*
* @brief Sets the address used for frame buffers, usually located in external memory.
*
* Sets the address used for frame buffers, usually located in external memory. Will
* reserve memory for one or two frame buffers based on display size. Will optionally
* also reserve memory for a third frame buffer used for animationStorage.
*
* @param [in] adr Starting address to use for frame buffers.
* @param depth (Optional) Depth of each pixel in bits, default is 16.
* @param useDoubleBuffering (Optional) If true, reserve memory for an extra frame buffer.
* @param useAnimationStorage (Optional) If true, reserve memory for animation storage.
*
* @deprecated Use the setFramaBufferStartAddress with 'format' parameter instead of 'depth'
*/
virtual void setFrameBufferStartAddress(void* adr, uint16_t depth = 16, bool useDoubleBuffering = true, bool useAnimationStorage = true)