发 帖  
原厂入驻New
实战多通道高速精密测温仪的全系列设计教程,以实际项目为依托,提升工程师核心竞争力!→点击立即抢购←
[资料] 从0到1学习M5stack系列教程(二)屏幕与按键
4 天前  182 ESP32 开发板
分享
  上一节介绍了滚动的文字实现,这一节将继续带着大家了解M5Stack的屏幕与按键
先来看一下按键的几个函数,M5Stack的库已经封装好了,根据不同的使用情况可以调用不同的函数来实现

        M5.BtnA/B/C. read();//如果按键按下,不断返回true,如果按键没按下不断返回false


         M5.BtnA/B/C. isPressed(); 如果按键按下,总是返回true,否则总是返回false


         M5.BtnA/B/C. isReleased(); 如果按键松开,总是返回true,如果按键按下总是返回false

         M5.BtnA/B/C. wasPressed(); 如果按下按键,返回一次true


         M5.BtnA/B/C. wasReleased(); 如果按键按下松开,返回一次true


         M5.BtnA/B/C. pressedFor(uint32_t ms); 如果按键按下超过设定时间,总是返回true


         M5.BtnA/B/C. releasedFor(uint32_t ms); 如果按键松开超过设定时间,总是返回true


         M5.BtnA/B/C. lastChange(); 如果按键状态被改变,返回状态改变时的系统运行时间,总是返回true

         下面一起来认识两个与屏幕绘图相关的函数,更多的功能将在后续介绍

         M5.Lcd.drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color);
绘制长方形轮廓

          M5.Lcd.fillCircle(int32_t x0, int32_t y0, int32_t r, uint32_t color);绘制实心圆

         简单写个案例了解如何使用

  1. #include <M5Stack.h>
  2. #define myRED 0xe8e4
  3. #define myGREEN 0x2589
  4. #define myBLUE 0x51d
  5. void setup() {
  6.   M5.begin();
  7.   M5.Lcd.setBrightness(100);//设置屏幕亮度为100
  8.   M5.Lcd.setTextSize(3); //设置字体大小为3号

  9.   M5.Lcd.setCursor(44, 215); //设置屏幕坐标
  10.   M5.Lcd.setTextColor(myRED); //设置字体颜色
  11.   M5.Lcd.printf("RED");
  12.   M5.Lcd.drawRect(42, 212, 55, 30, myRED); //绘制长方形
  13.   
  14.   M5.Lcd.setCursor(116, 215); //设置屏幕坐标
  15.   M5.Lcd.setTextColor(myGREEN); //设置字体颜色
  16.   M5.Lcd.printf("GREEN");
  17.   M5.Lcd.drawRect(114, 212, 91, 30, myGREEN); //绘制长方形

  18.   M5.Lcd.setCursor(222, 215); //设置屏幕坐标
  19.   M5.Lcd.setTextColor(myBLUE); //设置字体颜色
  20.   M5.Lcd.printf("BLUE");
  21.   M5.Lcd.drawRect(220, 212, 73, 30, myBLUE); //绘制长方形
  22. }

  23. void loop() {
  24.   M5.update();
  25.   IF (M5.BtnA.wasPressed()){      //判断A键是否被按下
  26.     M5.Lcd.fillCircle(160, 120, 80, myRED); //画圆
  27.   }
  28.   if (M5.BtnB.wasPressed()){
  29.     M5.Lcd.fillCircle(160, 120, 80, myGREEN);
  30.   }
  31.   if (M5.BtnC.wasPressed()){
  32.     M5.Lcd.fillCircle(160, 120, 80, myBLUE);
  33.   }
  34. }
复制代码


0
分享淘帖 显示全部楼层

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发资料
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表