main.cpp 函数
#include <Arduino.h>
#include "u8g2menu.h"
#include <mlx90614.h>
#define USE_MULTCORE 0
void xTaskOne(void *xTask1)
{
while(1)
{
delay(1000);
}
}
void xTaskTwo(void *xTask2)
{
while(1)
{
Serial.printf("//任务1task2\r\n");
delay(2000);
}
}
void xTaskThree(void *xTask3)
{
while(1)
{
delay(3000);
}
}
void setup() {
Serial.begin(9600);
delay(10);
U8g2_init();
delay(10);
mlx90614_init();
#if !USE_MULTCORE
xTaskCreate(
xTaskOne,
"TaskOne",
4096,
NULL,
1,
NULL) ;
xTaskCreate(
xTaskTwo,
"TaskTwo",
4096,
NULL,
2,
NULL);
xTaskCreate(
xTaskThree,
"TaskThree",
4096,
NULL,
3,
NULL);
#else
xTaskCreatePinnedToCore(xTaskOne,"TaskOne", 4096,NULL,1,NULL,0);
xTaskCreatePinnedToCore(xTaskTwo,"TaskTwo", 4096,NULL,2,NULL,1);
xTaskCreatePinnedToCore(xTaskThree,"TaskThree", 4096,NULL,3,NULL,0);
#endif
KYE_init();
}
void loop() {
int value=0;
while(1)
{
u8g2_menu_config();
}
}
u8g2.cpp文件
#include "u8g2menu.h"
#include <Arduino.h>
#include <mlx90614.h>
#include <U8g2lib.h>
#define scl 22
#define sda 21
#define cs 0
#define dc 0
#define reset 0
#define U8g2_MULTCORE 1
#if U8g2_MULTCORE == 0
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,scl,sda,U8X8_PIN_NONE);
#elif U8g2_MULTCORE == 1
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0,scl,sda,U8X8_PIN_NONE);
#elif U8g2_MULTCORE == 2
U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0,scl,sda,cs,dc,reset);
#elif U8g2_MULTCORE == 3
U8G2_SSD1306_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0,cs,dc,reset);
#endif
void U8g2_init()
{
u8g2.setBusClock(200000);
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.setContrast(200);
u8g2.setFont(u8g2_font_wqy12_t_gb2312);
Serial.println(u8g2.getBusClock());
}
#define key_OK_pin 27
#define key_UP_pin 4
#define key_DOWN_pin 15
#define key_OK digitalRead(key_OK_pin)
#define key_UP digitalRead(key_UP_pin)
#define key_DOWN digitalRead(key_DOWN_pin)
void KYE_init()
{
pinMode(key_OK_pin, INPUT_PULLUP);
pinMode(key_UP_pin, INPUT_PULLUP);
pinMode(key_DOWN_pin, INPUT_PULLUP);
}
PROGMEM const uint8_t menu_one_1[] ={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0xE0,0x07,0x00,0x00,0xFE,0x3F,0x00,0x00,0xE0,0x07,0x00,0x00,0xFE,
0x3F,0x00,0x80,0xE1,0x87,0x00,0x00,0xFE,0x3F,0x00,0xC0,0xE3,0xE7,0x01,0x00,0xFE,
0x3F,0x00,0xE0,0xFF,0xFF,0x03,0x00,0xFE,0x3F,0x00,0xF0,0xFF,0xFF,0x07,0x00,0xFE,
0x3F,0x00,0xF0,0xFF,0xFF,0x07,0x00,0xFE,0x3F,0x00,0xE0,0xFF,0xFF,0x07,0x00,0xFE,
0x3F,0x00,0xC0,0xFF,0xFF,0x03,0x00,0xFE,0x3F,0x00,0xC0,0xFF,0xFF,0x03,0x00,0xFE,
0x3F,0x00,0xC0,0x1F,0xFC,0x03,0x00,0xFE,0x3F,0x00,0xFC,0x0F,0xF8,0x3F,0x00,0xFE,
0x3F,0x00,0xFC,0x07,0xF0,0x3F,0x00,0xFE,0x3F,0x00,0xFC,0x07,0xF0,0x3F,0x00,0xFE,
0x3F,0x00,0xFC,0x07,0xF0,0x3F,0x00,0xFE,0x3F,0x00,0xFC,0x0F,0xF8,0x3F,0x00,0xFE,
0x3F,0x00,0xFC,0x0F,0xF8,0x3F,0x00,0xFE,0x3F,0x00,0xC0,0x1F,0xFC,0x03,0x00,0xFE,
0x3F,0x00,0xC0,0xFF,0xFF,0x03,0x00,0xFE,0x3F,0x00,0xE0,0xFF,0xFF,0x03,0x00,0xFE,
0x3F,0x00,0xF0,0xFF,0xFF,0x07,0x00,0xFE,0x3F,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0xFE,
0x3F,0x00,0xE0,0xFF,0xFF,0x07,0x00,0xFE,0x3F,0x00,0xE0,0xFF,0xFF,0x07,0x00,0xFE,
0x3F,0x00,0x80,0xE3,0xC7,0x03,0x00,0xFE,0x3F,0x00,0x00,0xE1,0x87,0x00,0x00,0xFE,
0x3F,0x00,0x00,0xE0,0x07,0x00,0x00,0xFE,0x3F,0x00,0x00,0xE0,0x07,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
PROGMEM const uint8_t menu_one_2[] ={
0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,
0x00,0x00,0xFE,0xFF,0xFF,0x01,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0x07,0x00,0x00,
0x00,0xC0,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0x3F,0x00,0x00,
0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0x01,0x00,
0x00,0xFE,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,
0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,
0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x03,0xFF,0xFF,0x3F,0x00,
0xF0,0xFF,0xFF,0x00,0xFC,0xFF,0x7F,0x00,0xF8,0xFF,0xFF,0x00,0xF8,0xFF,0x7F,0x00,
0xF8,0xFF,0x3F,0x00,0xF0,0xFF,0xFF,0x00,0xFC,0xFF,0x3F,0x00,0xF0,0xFF,0xFF,0x00,
0xFC,0xFF,0x3F,0x00,0xE0,0xFF,0xFF,0x00,0xFE,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x01,
0xFE,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x01,0xFE,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x03,
0xFE,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x03,0xFF,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x03,
0xFF,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0x07,0xFF,0xFF,0x3F,0x00,0xE0,0xFF,0xFF,0x07,
0xFF,0xFF,0x3F,0x00,0xF0,0xFF,0xFF,0x07,0xFF,0xFF,0x7F,0x00,0xF0,0xFF,0xFF,0x07,
0xFF,0xFF,0xFF,0x00,0xF8,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0x01,0xFE,0xFF,0xFF,0x07,
0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0xFF,0xFF,0x0F,0xFF,0x87,0xFF,0xFF,0x07,0xFF,0xFF,0x03,0x30,0x00,0xFF,0xFF,0x07,
0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0x07,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0x03,
0xFE,0x7F,0x00,0x00,0x00,0xF8,0xFF,0x03,0xFE,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x03,
0xFE,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x01,0xFE,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x01,
0xFE,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x01,0xFC,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x00,
0xFC,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x00,0xF8,0x3F,0x00,0x00,0x00,0xE0,0x7F,0x00,
0xF0,0x3F,0x00,0x00,0x00,0xE0,0x7F,0x00,0xF0,0x3F,0x00,0x00,0x00,0xF0,0x3F,0x00,
0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,
0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0xFF,0x01,0x00,
0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x3F,0x00,0x00,
0x00,0xE0,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x0F,0x00,0x00,
0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0x00,
0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,
};
PROGMEM const uint8_t menu_one_3[] ={
0x00,0x00,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,
0x00,0x00,0xF8,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x07,0x00,
0x00,0xF0,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,
0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,
0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,
0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,
0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0xF0,0xFF,0xFF,0x07,0xC0,0xFF,0xFF,0x0F,0xF0,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0x1F,
0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x1F,0xF8,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x1F,
0xF8,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x3F,0xFC,0xFF,0x03,0x00,0x00,0xC0,0xFF,0x3F,
0xFC,0xFF,0x01,0x00,0x00,0x80,0xFF,0x7F,0xFE,0xFF,0x01,0x00,0x00,0x00,0xFF,0x7F,
0xFE,0xFF,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFE,0xFF,0x00,0x00,0x00,0x00,0xFE,0x7F,
0xFE,0x7F,0x00,0x00,0x00,0x00,0xFE,0x7F,0xFE,0x7F,0x80,0xC7,0xC3,0x01,0xFE,0xFF,
0xFE,0x7F,0x80,0xEF,0xE7,0x03,0xFE,0xFF,0xFF,0x7F,0xC0,0xEF,0xE7,0x03,0xFE,0xFF,
0xFF,0x7F,0x80,0xC7,0xE3,0x01,0xFE,0xFF,0xFF,0x7F,0x00,0x83,0xC1,0x01,0xFE,0xFF,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFE,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
0xFE,0xFF,0x01,0x00,0x00,0x80,0xFF,0xFF,0xFE,0xFF,0x01,0x00,0x00,0x80,0xFF,0x7F,
0xFE,0xFF,0x03,0x00,0x00,0xC0,0xFF,0x7F,0xFE,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x7F,
0xFE,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x7F,0xFC,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x7F,
0xFC,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0x3F,0xF8,0xFF,0x7F,0x00,0xF0,0xFF,0xFF,0x3F,
0xF8,0xFF,0x7F,0xE0,0xFF,0xFF,0xFF,0x1F,0xF8,0xFF,0x7F,0xF0,0xFF,0xFF,0xFF,0x1F,
0xF0,0xFF,0x7F,0xFC,0xFF,0xFF,0xFF,0x1F,0xF0,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0x0F,
0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,
0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,
0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0xFE,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,
0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,
0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x00,
0x00,0x00,0xFE,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x1F,0x00,0x00,
0x00,0x00,0xC0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0x03,0x00,0x00,0x00,
};
PROGMEM const uint8_t menu_one_4[] ={
0xFF,0xE7,0xFF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xC7,0xFF,0x0F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xC3,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x3F,0xFF,0xC3,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xC3,0xFF,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xC1,0xFF,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x3F,0xFF,0xF1,0x00,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0x3B,0x00,
0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0x0F,0x00,0x80,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x3F,0xFF,0x07,0x00,0x00,0x7F,0xF8,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0x07,
0x00,0xE0,0x06,0xF8,0xFF,0xFF,0xFF,0xFF,0x3F,0x80,0x03,0x00,0xF0,0x0D,0xF8,0xFF,
0xFF,0xFF,0xFF,0x3F,0x80,0x01,0x00,0xF0,0x1B,0xF8,0xFF,0xFF,0xFF,0xFF,0x3F,0xC0,
0x01,0x00,0xF0,0x1B,0xF8,0xFF,0xFF,0xFF,0xFF,0x3F,0xC0,0x00,0x00,0xF0,0x37,0xFC,
0xFF,0xFF,0xFF,0xFF,0x3F,0x61,0x00,0x00,0xE0,0x37,0x02,0xF0,0xFF,0xFF,0xFF,0x3F,
0x61,0x00,0x00,0x80,0x6F,0x03,0x00,0xFE,0xFF,0xFF,0x3F,0x63,0x00,0x00,0x00,0xEF,
0xF8,0x0F,0xF0,0xFF,0xFF,0x3F,0x7F,0xC0,0x00,0x18,0x6F,0xFE,0xFF,0x81,0xFF,0xFF,
0x3F,0x7F,0xC0,0x00,0x98,0x6F,0xFE,0xFF,0x1F,0xFE,0xFF,0x3F,0x7F,0x00,0x00,0x00,
0x6F,0xFF,0xFF,0x7F,0xF8,0xFF,0x3F,0x7F,0xE0,0xFF,0x1F,0x6E,0xFF,0xFF,0xFF,0xF1,
0xFF,0x3F,0x7F,0xF8,0xFF,0xFF,0x60,0xFF,0xFF,0xFF,0xE7,0xFF,0x3F,0x7F,0x0F,0x00,
0xC0,0x63,0xFF,0xFF,0xFF,0x8F,0xFF,0x3F,0xFF,0x03,0x00,0x00,0x3F,0xFE,0xFF,0xFF,
0x9F,0xFF,0x3F,0xFF,0x01,0x00,0x00,0x3C,0xFE,0xFF,0xFF,0x3F,0xFC,0x3F,0xFF,0x00,
0x00,0x00,0x38,0xFC,0xFF,0xFF,0x7F,0xF0,0x3F,0x7F,0xC0,0x00,0x18,0x38,0xF0,0xFF,
0xFF,0xFF,0xE6,0x3F,0x7F,0xE0,0x01,0x3C,0x30,0xC0,0xFF,0xFF,0xFF,0xCC,0x3F,0x7F,
0xF0,0x01,0x7C,0x30,0x80,0xFF,0xFF,0xFF,0x99,0x3F,0x3F,0xF0,0x01,0x7C,0x30,0x00,
0xFF,0xFF,0xFF,0x39,0x3F,0x3F,0xF0,0x00,0x78,0x30,0x00,0xFF,0xFF,0xFF,0x39,0x3F,
0x7F,0x60,0x00,0x10,0x30,0x00,0xFE,0x7F,0xF0,0x79,0x3E,0x7F,0x00,0x00,0x00,0x30,
0x00,0xFE,0x3F,0xC0,0xF8,0x3E,0xFF,0x00,0x00,0x00,0x18,0x00,0xFC,0x3F,0x00,0xF0,
0x3C,0xFF,0x01,0x00,0x00,0x1C,0x00,0xF8,0x1F,0x00,0x30,0x38,0xFF,0x03,0x00,0x00,
0x0E,0x00,0xE0,0x07,0x00,0x30,0x30,0xFF,0x1F,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,
0x10,0x30,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x30,0x30,0xFF,0xE1,0xFF,
0x3F,0x00,0x00,0x00,0x00,0xE0,0x33,0x30,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0xF8,0x73,0x30,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xF7,0x38,0xFF,0xF9,
0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xF7,0x3C,0xFF,0xF9,0x01,0x00,0x00,0x00,0x00,
0x00,0xFE,0xF7,0x3E,0xFF,0xF8,0x03,0x00,0x00,0x00,0x00,0x00,0xFC,0xF7,0x3F,0xFF,
0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0xFC,0xF7,0x3F,0xFF,0xFC,0x03,0x00,0x00,0x00,
0x00,0x00,0xF8,0xF7,0x3F,0xFF,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0xF0,0xF3,0x3F,
0xFF,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0xF0,0xF3,0x3F,0xFF,0xFC,0x00,0x00,0x00,
0x00,0x00,0x00,0xF0,0xFB,0x3F,0xFF,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF9,
0x3F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0xFF,0xFC,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xF8,0x3F,0xFF,0x7C,0x00,0x00,0x00,0xFF,0xFF,0x03,0x00,0xF8,0x3F,0xFF,0x3C,0x70,
0x00,0xC0,0x1F,0xE0,0x1F,0x00,0xF8,0x3F,0xFF,0x08,0xFC,0x03,0xC0,0x0F,0x00,0x38,
0x00,0xF8,0x3F,0xFF,0x01,0xFE,0x07,0xE0,0x0F,0x00,0x7C,0x00,0xFC,0x3F,0xFF,0x01,
0xFE,0x0F,0xE0,0x7F,0x00,0xFE,0x00,0xFC,0x3F,0xFF,0x03,0xFF,0x1F,0xF0,0x7F,0xE6,
0xFF,0x01,0xFC,0x3F,0xFF,0x03,0xFF,0x3F,0xF8,0xFF,0xFF,0xFF,0x03,0xFE,0x3F,0xFF,
0xC7,0xFF,0x7F,0xFC,0xFF,0xFF,0xFF,0x07,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0x8F,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F};
int menu_one()
{
int flag = 1;
while(1)
{
if(key_UP == 0)
{
delay(10);
while (key_UP == 0);
delay(10);
flag++;
if(flag==5) flag=1;
}
if(key_OK == 0)
{
delay(10);
while (key_OK == 0);
delay(10);
u8g2.clearBuffer();
return(flag) ;
}
switch (flag)
{
case 1:
{
u8g2.clearBuffer();
u8g2.drawXBMP(0,0,64,64,menu_one_1);
u8g2.sendBuffer();
}break;
case 2:
{
u8g2.clearBuffer();
u8g2.drawXBMP(0,0,59,60,menu_one_2);
u8g2.sendBuffer();
}break;
case 3:
{
u8g2.clearBuffer();
u8g2.drawXBMP(0,0,64,63,menu_one_3);
u8g2.sendBuffer();
}break;
case 4:
{
u8g2.clearBuffer();
u8g2.drawXBMP(0,0,86,64,menu_one_4);
u8g2.sendBuffer();
}break;
}
}
}
int menu_TWo()
{
int flag = 1;
while(1)
{
if(key_UP == 0)
{
delay(10);
while (key_UP == 0);
delay(10);
flag++;
if(flag==5) flag=1;
}
if(key_OK == 0)
{
delay(10);
while (key_OK == 0);
delay(10);
u8g2.clearBuffer();
return 0;
}
switch (flag)
{
case 1:
{
u8g2.clearBuffer();
u8g2.setCursor(0,16);
u8g2.printf("温度数值:%d",mlx90614_time());
u8g2.drawUTF8(0,32," 子菜单12") ;
u8g2.drawUTF8(0,48," 子菜单13") ;
u8g2.drawUTF8(0,64," 子菜单14") ;
u8g2.sendBuffer();
}break;
case 2:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单11") ;
u8g2.drawUTF8(0,32,"->子菜单12") ;
u8g2.drawUTF8(0,48," 子菜单13") ;
u8g2.drawUTF8(0,64," 子菜单14") ;
u8g2.sendBuffer();
}break;
case 3:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单11") ;
u8g2.drawUTF8(0,32," 子菜单12") ;
u8g2.drawUTF8(0,48,"->子菜单13") ;
u8g2.drawUTF8(0,64," 子菜单14") ;
u8g2.sendBuffer();
}break;
case 4:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单11") ;
u8g2.drawUTF8(0,32," 子菜单12") ;
u8g2.drawUTF8(0,48," 子菜单13") ;
u8g2.drawUTF8(0,64,"->子菜单14") ;
u8g2.sendBuffer();
}break;
}
}
}
int menu_Three()
{
int flag = 1;
while(1)
{
if(key_UP == 0)
{
delay(10);
while (key_UP == 0);
delay(10);
flag++;
if(flag==5) flag=1;
}
if(key_OK == 0)
{
delay(10);
while (key_OK == 0);
delay(10);
u8g2.clearBuffer();
return 0;
}
switch (flag)
{
case 1:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16,"->子菜单2") ;
u8g2.drawUTF8(0,32," 子菜单22") ;
u8g2.drawUTF8(0,48," 子菜单23") ;
u8g2.drawUTF8(0,64," 子菜单24") ;
u8g2.sendBuffer();
}break;
case 2:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单21") ;
u8g2.drawUTF8(0,32,"->子菜单22") ;
u8g2.drawUTF8(0,48," 子菜单23") ;
u8g2.drawUTF8(0,64," 子菜单24") ;
u8g2.sendBuffer();
}break;
case 3:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单21") ;
u8g2.drawUTF8(0,32," 子菜单22") ;
u8g2.drawUTF8(0,48,"->子菜单23") ;
u8g2.drawUTF8(0,64," 子菜单24") ;
u8g2.sendBuffer();
}break;
case 4:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单21") ;
u8g2.drawUTF8(0,32," 子菜单22") ;
u8g2.drawUTF8(0,48," 子菜单23") ;
u8g2.drawUTF8(0,64,"->子菜单24") ;
u8g2.sendBuffer();
}break;
}
}
}
int menu_Four()
{
int flag = 1;
while(1)
{
if(key_UP == 0)
{
delay(10);
while (key_UP == 0);
delay(10);
flag++;
if(flag==5) flag=1;
}
if(key_OK == 0)
{
delay(10);
while (key_OK == 0);
delay(10);
u8g2.clearBuffer();
return 0;
}
switch (flag)
{
case 1:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16,"->子菜单32") ;
u8g2.drawUTF8(0,32," 子菜单3") ;
u8g2.drawUTF8(0,48," 子菜单33") ;
u8g2.drawUTF8(0,64," 子菜单34") ;
u8g2.sendBuffer();
}break;
case 2:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单31") ;
u8g2.drawUTF8(0,32,"->子菜单32") ;
u8g2.drawUTF8(0,48," 子菜单33") ;
u8g2.drawUTF8(0,64," 子菜单34") ;
u8g2.sendBuffer();
}break;
case 3:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单31") ;
u8g2.drawUTF8(0,32," 子菜单32") ;
u8g2.drawUTF8(0,48,"->子菜单33") ;
u8g2.drawUTF8(0,64," 子菜单34") ;
u8g2.sendBuffer();
}break;
case 4:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单31") ;
u8g2.drawUTF8(0,32," 子菜单32") ;
u8g2.drawUTF8(0,48," 子菜单33") ;
u8g2.drawUTF8(0,64,"->子菜单34") ;
u8g2.sendBuffer();
}break;
}
}
}
int menu_Fivw()
{
int flag = 1;
while(1)
{
if(key_UP == 0)
{
delay(10);
while (key_UP == 0);
delay(10);
flag++;
if(flag==5) flag=1;
}
if(key_OK == 0)
{
delay(10);
while (key_OK == 0);
delay(10);
u8g2.clearBuffer();
return 0;
}
switch (flag)
{
case 1:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16,"->子菜单42") ;
u8g2.drawUTF8(0,32," 子菜单43") ;
u8g2.drawUTF8(0,48," 子菜单43") ;
u8g2.drawUTF8(0,64," 子菜单44") ;
u8g2.sendBuffer();
}break;
case 2:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单4") ;
u8g2.drawUTF8(0,32,"->子菜单4") ;
u8g2.drawUTF8(0,48," 子菜单4") ;
u8g2.drawUTF8(0,64," 子菜单4") ;
u8g2.sendBuffer();
}break;
case 3:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单4") ;
u8g2.drawUTF8(0,32," 子菜单4") ;
u8g2.drawUTF8(0,48,"->子菜单4") ;
u8g2.drawUTF8(0,64," 子菜单34") ;
u8g2.sendBuffer();
}break;
case 4:
{
u8g2.clearBuffer();
u8g2.drawUTF8(0,16," 子菜单4") ;
u8g2.drawUTF8(0,32," 子菜单4") ;
u8g2.drawUTF8(0,48," 子菜单34") ;
u8g2.drawUTF8(0,64,"->子菜单4") ;
u8g2.sendBuffer();
}break;
}
}
}
void u8g2_menu_config()
{
int value = menu_one();
if(value == 1)
{
menu_TWo();
}else if (value == 2)
{
menu_Three();
}else if (value == 3)
{
menu_Four();
}else if (value == 4)
{
menu_Fivw();
}
}
mlx90614.cpp文件
#include <Arduino.h>
#include <mlx90614.h>
#define SCL_PIN 18
#define SDA_PIN 19
#define I2C_ADDRESS 0x00
uint8_t bit_in = 0;
uint8_t bit_out = 0;
uint8_t data_in = 0;
uint8_t data_out = 0x5a;
void delay_us(uint16_t time);
void start_bit();
void stop_bit();
void send_bit();
void receive_bit();
uint8_t rx_byte();
void tx_byte(uint8_t dat_byte);
void writeByte(uint8_t addr, uint8_t value) {
start_bit();
tx_byte(addr << 1);
tx_byte(value);
stop_bit();
}
uint8_t readByte(uint8_t addr) {
uint8_t data = 0;
start_bit();
tx_byte((addr << 1) | 1);
data = rx_byte();
bit_in = 1;
receive_bit();
stop_bit();
return data;
}
void delay_us(uint16_t time) {
delayMicroseconds(time);
}
void start_bit() {
digitalWrite(SCL_PIN, HIGH);
digitalWrite(SDA_PIN, HIGH);
delay_us(9);
digitalWrite(SDA_PIN, LOW);
delay_us(9);
digitalWrite(SCL_PIN, LOW);
delay_us(9);
}
void stop_bit() {
digitalWrite(SCL_PIN, LOW);
delay_us(9);
digitalWrite(SDA_PIN, LOW);
delay_us(9);
digitalWrite(SCL_PIN, HIGH);
delay_us(9);
digitalWrite(SDA_PIN, HIGH);
}
void send_bit() {
if (bit_out == 0) {
digitalWrite(SDA_PIN, LOW);
} else {
digitalWrite(SDA_PIN, HIGH);
}
delay_us(9);
digitalWrite(SCL_PIN, HIGH);
delay_us(9);
digitalWrite(SCL_PIN, LOW);
delay_us(9);
}
void receive_bit() {
pinMode(SDA_PIN, INPUT_PULLUP);
digitalWrite(SCL_PIN, HIGH);
delay_us(9);
bit_in = digitalRead(SDA_PIN);
digitalWrite(SCL_PIN, LOW);
delay_us(9);
pinMode(SDA_PIN, OUTPUT);
}
void tx_byte(uint8_t dat_byte) {
for (int i = 0; i < 8; i++) {
if (dat_byte & 0x80) {
bit_out = 1;
} else {
bit_out = 0;
}
send_bit();
dat_byte <<= 1;
}
receive_bit();
if (bit_in == 1) {
stop_bit();
}
}
uint8_t rx_byte() {
uint8_t dat = 0;
for (int i = 0; i < 8; i++) {
dat <<= 1;
receive_bit();
if (bit_in == 1) {
dat |= 1;
}
}
bit_out = 0;
send_bit();
return dat;
}
int mlx90614_time()
{ uint16_t k;
start_bit();
tx_byte(I2C_ADDRESS);
tx_byte(0x07);
start_bit();
tx_byte(0x01);
bit_out=0;
uint8_t dataL = rx_byte();
bit_out=0;
uint8_t datah = rx_byte();
bit_out=1;
stop_bit();
k = (datah<<8)|dataL;
return (((k*2)-27315)/100)*0.9;
}
void mlx90614_init() {
pinMode(SCL_PIN, OUTPUT);
pinMode(SDA_PIN, OUTPUT);
}
void mlx90614_config() {
int l =mlx90614_time();
Serial.printf("time:%d\r\n",l);
}