Adafruit_LEDBackpack.h中drawBitmap
时间: 2024-04-29 13:23:17 浏览: 176
函数的作用是在LED背光屏上绘制位图。
函数定义如下:
```c++
void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h, uint16_t color);
```
参数说明:
- x:位图左上角的x坐标。
- y:位图左上角的y坐标。
- bitmap:位图数据的指针。
- w:位图宽度。
- h:位图高度。
- color:位图的颜色。
该函数将位图数据绘制在LED背光屏上,位图数据以8个像素为一组,每个像素占用1个bit,低位在前,高位在后。例如,如果一个位图宽度为16个像素(即2个字节),高度为8个像素,那么它的位图数据应该是一个16x8=128个bit的数组,每8个bit表示一个像素的颜色。函数根据位图数据和颜色参数,在LED背光屏上绘制出位图。
示例代码:
```c++
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_LEDBackpack.h>
Adafruit_7segment matrix = Adafruit_7segment();
static const uint8_t PROGMEM
smile_bmp[] =
{ B00000000,
B01100110,
B01100110,
B00000000,
B00000000,
B10000001,
B01111110,
B00000000
};
void setup() {
matrix.begin(0x70);
}
void loop() {
matrix.clear();
matrix.drawBitmap(0, 0, smile_bmp, 8, 8, LED_ON);
matrix.writeDisplay();
delay(1000);
}
```
本示例在LED背光屏上绘制了一个笑脸的位图。代码中,我们先在程序的静态存储区定义了一个位图数组,其中每个元素表示位图中的一行像素,最后一个元素表示位图的最后一行像素。然后在loop()函数中,我们先使用clear()函数清空LED背光屏,然后使用drawBitmap()函数在左上角绘制位图,最后使用writeDisplay()函数将绘制的位图显示在LED背光屏上。由于LED背光屏上的像素只有两种颜色,因此我们使用LED_ON参数表示需要绘制的像素颜色。最后使用delay()函数让程序暂停1秒钟,然后重新开始循环。
阅读全文