I designed a custom board with STM32F413RH and 4DOLED-282815 display. Oled display has 128x128 pixel. I think ram is enough to use stemwin because STM32F413RH has 320 KB RAM and 1.5MByte Flash.
I want to use stemwin without OS. I rearranged LCDConf(.h/.c) and GUIConf(.h/.c) files. I wrote below inside of LCDWriteDataMultiple function.
void LcdWriteDataMultipleWithDMA(uint8_t * pData, uint32_t NumItems)
{
set_swo_pin();//to see elapsed time in oscilloscope
HAL_DMA_Start(&hdma_memtomem_dma2_stream0, (uint32_t)pData, (uint32_t)0x6C000001, NumItems);
HAL_DMA_PollForTransfer(&hdma_memtomem_dma2_stream0, HAL_DMA_FULL_TRANSFER, 10); //This is for test
reset_swo_pin();//to see elapsed time in oscilloscope
}
I write below code to test stemwin with dma.
GUI_MEMDEV_Handle hMem = GUI_MEMDEV_Create(0,0,128,128);
while(1){
GUI_MEMDEV_Select(hMem);
GUI_Clear();
GUI_SetBkColor(GUI_RED);
GUI_SetFont(&GUI_Font32B_ASCII);
GUI_SetColor(GUI_WHITE);
GUI_DispStringAt("Text", 10, 20);
GUI_MEMDEV_CopyToLCD(hMem);
GUI_MEMDEV_Delete(hMem);
}
The code above runs correctly. But when i measure signal on swo pin with logic analzer, I noticed the one data line of frame buffer is send each time. So, to use dma wil not be effective.
I used internal driver as below code;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66722, GUIDRV_FLEXCOLOR_M16C0B8);
Is it possible to send frame data with DMA at once? Should I write driver for SSD1351?
Thanks
I want to use stemwin without OS. I rearranged LCDConf(.h/.c) and GUIConf(.h/.c) files. I wrote below inside of LCDWriteDataMultiple function.
void LcdWriteDataMultipleWithDMA(uint8_t * pData, uint32_t NumItems)
{
set_swo_pin();//to see elapsed time in oscilloscope
HAL_DMA_Start(&hdma_memtomem_dma2_stream0, (uint32_t)pData, (uint32_t)0x6C000001, NumItems);
HAL_DMA_PollForTransfer(&hdma_memtomem_dma2_stream0, HAL_DMA_FULL_TRANSFER, 10); //This is for test
reset_swo_pin();//to see elapsed time in oscilloscope
}
I write below code to test stemwin with dma.
GUI_MEMDEV_Handle hMem = GUI_MEMDEV_Create(0,0,128,128);
while(1){
GUI_MEMDEV_Select(hMem);
GUI_Clear();
GUI_SetBkColor(GUI_RED);
GUI_SetFont(&GUI_Font32B_ASCII);
GUI_SetColor(GUI_WHITE);
GUI_DispStringAt("Text", 10, 20);
GUI_MEMDEV_CopyToLCD(hMem);
GUI_MEMDEV_Delete(hMem);
}
The code above runs correctly. But when i measure signal on swo pin with logic analzer, I noticed the one data line of frame buffer is send each time. So, to use dma wil not be effective.
I used internal driver as below code;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66722, GUIDRV_FLEXCOLOR_M16C0B8);
Is it possible to send frame data with DMA at once? Should I write driver for SSD1351?
Thanks