Adafruit ILI9341 STM
名称
Adafruit ILI9341 display ライブラリ
/icons/hr.icon
概要
Adafruit社が公開しているTFTグラフィック液晶用ドライバライブラリ Adafruit_ILI9341のArduino STM32対応ライブラリです。STM32が搭載しているDMAを使った高速な描画が可能です。 ライブラリリファレンス
Adafruit ILI9341_STMクラス class Adafruit ILI9341_STM : public Adafruit_GFX_AS
ヘッダーファイル #include <Adafruit ILI9341_STM.h>
本クラスは、Adafruit_GFX_ASクラスの派生クラスです。ライブラリの利用にはAdafruit_GFX_ASクラスも参照して下さい。
定数
画面サイズ
ILI9341_TFTWIDTH 240
ILI9341_TFTHEIGHT 320
色
ILI9341_BLACK 0x0000
ILI9341_NAVY 0x000F
ILI9341_DARKGREEN 0x03E0
ILI9341_DARKCYAN 0x03EF
ILI9341_MAROON 0x7800
ILI9341_PURPLE 0x780F
ILI9341_OLIVE 0x7BE0
ILI9341_LIGHTGREY 0xC618
ILI9341_DARKGREY 0x7BEF
ILI9341_BLUE 0x001F
ILI9341_GREEN 0x07E0
ILI9341_CYAN 0x07FF
ILI9341_RED 0xF800
ILI9341_MAGENTA 0xF81F
ILI9341_YELLOW 0xFFE0
ILI9341_WHITE 0xFFFF
ILI9341_ORANGE 0xFD20
ILI9341_GREENYELLOW 0xAFE5
ILI9341_PINK 0xF81F
ILI9341_MAROON 0x7800
ILI9341_PURPLE 0x780F
ILI9341_OLIVE 0x7BE0
ILI9341_LIGHTGREY 0xC618
ILI9341_DARKGREY 0x7BEF
ILI9341_BLUE 0x001F
ILI9341_GREEN 0x07E0
ILI9341_CYAN 0x07FF
ILI9341_RED 0xF800
ILI9341_MAGENTA 0xF81F
ILI9341_YELLOW 0xFFE0
ILI9341_WHITE 0xFFFF
ILI9341_ORANGE 0xFD20
ILI9341_GREENYELLOW 0xAFE5
ILI9341_PINK 0xF81F
メンバー関数(メソッド)
コンストラクタ
■ Adafruit Adafruit_ILI9341_STM(int8_t _CS, int8_t _DC, int8_t _RST = -1)
引数
_CS :CSピン
_DC :DCピン
_RST :リセットピン
インスタンスを生成し、初期化を行います。
利用開始
■ void begin(SPIClass & spi, uint32_t freq=48000000)
引数
spi :SPIオブジェクト(参照指定)
freq :SPIクロック速度(Hz)
TFTの利用を開始します。
通信のためのSPIの初期化及びワーク用メモリを確保し、以降のコマンドAPIの利用を可能な状態にします。
spiには、通信及び接続ピンに対応するSPIオブジェクトを指定します。
freqには、SPIクロック速度を指定します。
(注意)
現時点(2018/10/4)において、spiの指定において不具合があります。実質的に利用できるSPIオブジェクトは、
既存のSPIオブジェクトのみです。
SPI2を利用する際、下記のようにSPI2のインスタンスを新たに生成して利用する場合、
既存のSPIオブジェクトの内容が破壊されます。
code:cpp
SPIClass SPI_2(2);
Adafruit_ILI9341_STM TFT(CSpin, DCpin, RSTpin);
TFT.begin(SPI_2);
これを防ぐために、begin()メソッドには必ず既存のSPIオブジェクトを使って、SPIオブジェクトの利用ポートの変更を
setModule()メソッドを使って行って下さい。
code:cpp
SPI.setModule(2); // SPI2ポート利用設定
Adafruit_ILI9341_STM TFT(CSpin, DCpin, RSTpin);
TFT.begin(SPI_2);
■ void begin(void)
引数
なし
TFTの利用を開始します。
void begin(SPIClass & spi, uint32_t freq=48000000)の省略系です。
利用するSPIポートはSPI1、クロックは48000000となります。
ウィンドウ領域の設定
■ void setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1)
色データの送信
■ void pushColor(uint16_t color)
■ void pushColors(void * colorBuffer, uint16_t nr_pixels, uint8_t async=0)
スクリーン領域の塗りつぶし
■ void fillScreen(uint16_t color)
点の描画
■ void drawPixel(int16_t x, int16_t y, uint16_t color)
直線の描画
■ void drawLine(int16_t x0, int16_t y0,int16_t x1, int16_t y1, uint16_t color)
■ void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
■ void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
矩形の描画
■ void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
画面の回転
■ void setRotation(uint8_t r)
画面の反転
■ void invertDisplay(boolean i)
R・G・B各色要素から16ビットカラーコードの作成
■ uint16_t color565(uint8_t r, uint8_t g, uint8_t b)
■ uint16_t readPixel(int16_t x, int16_t y)
■ uint16_t readPixels(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t *buf)
■ uint16_t readPixelsRGB24(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint8_t *buf)
■ uint8_t readcommand8(uint8_t reg, uint8_t index = 0)
/icons/hr.icon
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・加筆修正したものです。