描述
它是一个简单的项目,存储高达8MB的图片数据在spil - flash通过全速DMA传输来渲染字体和图形。
第一个想法是使用基于Stm32的可编程显示适配器帮助AVR CPU。
现在我使用stm32duino complete作为工频计。
您可以在Spi Flash中存储任何数据,以便快速绘制并显示。在我的图片中,你可以看到一个字体示例119*70像素,用24BBP(3字节RGB)传输。
细节
在许多项目中,我使用一个简单的工作区来绘制字体。
1.像素存储在RGB565左上角到右下角,连续的下一张图片。
2.字体存储在按ASCII码排序的图片中。
3.我们可以在Flash中使用字体Startpoint,第一点=0(不同字体)
代码:
- <blockquote>uint32_t fontStart=0; // Font Startpoint
复制代码
字符的例子:
- uint8_t *buf = new uint8_t[picwidth*picheight*2];
- mem.read(charstartpoint, buf, mywidth*myheight*2 ); //mem.read(startaddress, *buffer, length );
- tft.drawDMAImage(buf, posx, posy, picwidth, picheight ); //Adafruit Library
复制代码
简单字符串文本示例:
- String metertext = "Powermeter";
- for(int i=0; i<mystring.length();i++)
- {
- char mychar= (char)mystring.charAt(i);
- uint8_t ascii = (uint8_t)mychar; //get ascii code from char
- ascii = ascii - 32;
- uint32_t charstartpoint = fontStart + (ascii*picwidth*picheight*2);
-
- mem.read(charstartpoint, buf, picwidth*picheight*2 ); //mem.read(startaddress, *buffer, length );
- tft.drawImage(buf, x+picwidth*i, posy, picwidth, picheight );
- }
-
复制代码
原文请见hackaday
|