Jump to content

uGFX(ILI9488) + stm32f103 + 8080(8 bits bus)


TimAs

Recommended Posts

Hello! Nice to see all!

I apologize in advance if the question will seem to someone very simple, but still I want to ask: how can I connect ili9488 on an 8-bit bus to stm32f103rc using uGFX

I tried to find some example and do something like this. At the moment, I installed uGFX, configured it for ILI9488, found such an example

https://github.com/logical/ili9488-stm32f103

, took the pins out of it, and rewrote my pins, but I see how the screen is painted in a dark striped color, and the functions from the uGFX library do not work. Help me please. Maybe someone knows how to do it right?

IMG_20190722_222635.jpg

Link to comment
Share on other sites

Most likely problem is that the pins are not correct or they have not been initialized correctly. Best way to test this is to use a scope and check you are getting waveforms you expect.

2nd most likely problem is that there is something wrong in your controller initialisation. Often chips that as marked with a part number are not actually that part number particularly from Chinese sources. It is often good to check the chip markings match what you were told it was. Sometimes the documentation is wrong.

Good luck.

Link to comment
Share on other sites

Thank you for your reply. I do not know how, but I tried use the 2.8 version and my friend found the mistake in sending process at 8 bit mode in library for ili9488, so now it's working. Also we found, that rotation of 0 degree do not resize the frame (stay to show that rotated frame,  but not the size of displaying,  and it cats half of  picture).

If somebody have same problem, I used to take this project at first:
https://github.com/logical/ili9488-stm32f103

build uGFX for STM32cubeIDE with this instruction:
https://wiki.ugfx.io/index.php/Using_Eclipse

and changed function for reading:
uint16_t ILI9488ReadData(void) {
  uint16_t data;
  BUS_input();
  HAL_GPIO_WritePin(GPIOB, GPIO_DC,GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB,GPIO_WR,GPIO_PIN_SET);


  HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_RESET);
  data=READ_LCD;
  HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_SET);
  BUS_output();
  return data;
}

part:
  HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_RESET);
  data=READ_LCD;
  HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_SET);

to
  HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, GPIO_RD,GPIO_PIN_SET);
  data=READ_LCD;


May be my comments will be more useful for someone else

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...