Errata corrige: time 05:45 Here and somewhere else in the video you see the total page of the "original" library showing "20 screens". it is 50. Initially it was 20, when I decided to review library I changed to 50 in order to have the four tests of nearly the same time on original library. As you can see I forgot updating description in the total page. It is 50 screens: 100ms per screen.
Errata corrige: time 07:19 As the variable is modified by an interrupt callback, that must be "volatile". So, as you can see on github, the right declaration is "static volatile uint8_t ..." I forgot it while registering
Hi @bluewat, Thank you for this wonderful training, had a lot of insights on how to design the display, this was really helpful. Only one query is there any tool in specific to generate the fonts for this display
There are some tools here around (mainly over GitHub)., but I haven't found something complete and easy to use. ... but I never had a need to design specific fonts.
Hello, All your optimization ideas are great, especially the mix of SPI modes and buffer. I'm trying to get away from the HAL_SPI_Transmit function in polling mode and do something like this: void ST7735_WriteData(uint8_t* buff, size_t buff_size) { TFT_DC_D(); for(uint8_t i=0;iSR & SPI_SR_TXE)){} SPI1->DR = buff[i]; } while ((SPI1->SR & SPI_SR_BSY)); And of course: void ST7735_WriteCommand(uint8_t cmd) { TFT_DC_C(); while (!(SPI1->SR & SPI_SR_TXE)); SPI1->DR = cmd; while ((SPI1->SR & SPI_SR_BSY)); Too bad I don't have an analyzer...
"displaying images" is not a big issue. You just have to transfer them filling buffer and moving it to display (more or less as what is done in FillArea, but using image data instead of filling buffer with just a single color). The problem is: what you mean for an "image"? If you refer to a RGB565 pixel information array you just have to "display" it as stated above. But if you are thinking to a jpeg, png or so on, you have to think to convert it, move it into an array and storing it inside your program (involving maybe also mass storage issues). That's the reason why (together to the availability of any font I like) I'm using TouchGFX even with these displays when I need something more than a basic graphics. TouchGFX ease all these problems. Pictures in the GitHub page should show what I mean.