本过程贴记录如下字任务目标的完成:
基础任务1:1 编程实现按键状态的采集
基础任务3:3 基于屏幕驱动函数实现字符的显示,例如显示Hello EEPW & DigiKey;也可显示自己喜欢的名言警句
按键有蓝色与红色两个button,分别接到开发板的D5,d6两个数字引脚,通过pinMode设置内部上拉,因为button按下后为低电平。
屏幕驱动采用adafruit的ST7789库,结合GFX库。非常方便显示字符、数字与图片。
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7789.h> // Hardware-specific library for ST7789 #include <SPI.h> // Use dedicated hardware SPI pins Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST); void setup(void) { Serial.begin(115200); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); // turn on backlite pinMode(TFT_BACKLITE, OUTPUT); digitalWrite(TFT_BACKLITE, HIGH); // turn on the TFT / I2C power supply pinMode(TFT_I2C_POWER, OUTPUT); digitalWrite(TFT_I2C_POWER, HIGH); delay(10); // initialize TFT tft.init(135, 240); // Init ST7789 240x135 tft.setRotation(3); tft.fillScreen(ST77XX_BLACK); tft.setTextColor(ST77XX_WHITE); delay(1000); } void loop() { tft.setCursor(0, 0); tft.setTextSize(3); tft.println("HELLO EEPW"); if (digitalRead(5) == LOW) { tft.setCursor(0, 20); tft.setTextSize(3); tft.print("BTN 1 pressed"); } else if (digitalRead(6) == LOW) { tft.setCursor(0, 20); tft.setTextSize(3); tft.print("BTN 2 pressed"); } delay(100); tft.fillRect(0, 20, 240, 24, ST77XX_BLACK); }
演示视频见附件: