Add 'CARDPUTER Arduino/qrcodei2c.ino'
This commit is contained in:
70
CARDPUTER Arduino/qrcodei2c.ino
Normal file
70
CARDPUTER Arduino/qrcodei2c.ino
Normal file
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @file i2c_mode.ino
|
||||
* @author SeanKwok (shaoxiang@m5stack.com)
|
||||
* @brief Unit QRCode I2C Mode Example
|
||||
* @version 0.1
|
||||
* @date 2024-01-30
|
||||
*
|
||||
*
|
||||
* @Hardwares: M5Core + Unit Synth
|
||||
* @Platform Version: Arduino M5Stack Board Manager v2.1.0
|
||||
* @Dependent Library:
|
||||
* M5Unified: https://github.com/m5stack/M5Unified
|
||||
* M5GFX: https://github.com/m5stack/M5GFX
|
||||
* M5UnitQRCode: https://github.com/m5stack/M5Unit-QRCode
|
||||
*/
|
||||
#include <M5Unified.h>
|
||||
#include <M5GFX.h>
|
||||
#include "M5UnitQRCode.h"
|
||||
|
||||
M5Canvas canvas(&M5.Display);
|
||||
|
||||
M5UnitQRCodeI2C qrcode;
|
||||
|
||||
void setup() {
|
||||
M5.begin();
|
||||
|
||||
canvas.setColorDepth(1); // mono color
|
||||
canvas.createSprite(M5.Display.width(), M5.Display.height());
|
||||
canvas.setTextSize((float)canvas.width() / 160);
|
||||
canvas.setTextScroll(true);
|
||||
|
||||
while (!qrcode.begin(&Wire, UNIT_QRCODE_ADDR, G2, G1, 100000U)) {
|
||||
canvas.println("Unit QRCode I2C Init Fail");
|
||||
Serial.println("Unit QRCode I2C Init Fail");
|
||||
canvas.pushSprite(0, 0);
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
canvas.println("Unit QRCode I2C Init Success");
|
||||
Serial.println("Unit QRCode I2C Init Success");
|
||||
canvas.println("Manual Scan Mode");
|
||||
canvas.pushSprite(0, 0);
|
||||
qrcode.setTriggerMode(MANUAL_SCAN_MODE);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (qrcode.getDecodeReadyStatus() == 1) {
|
||||
uint8_t buffer[512] = {0};
|
||||
uint16_t length = qrcode.getDecodeLength();
|
||||
Serial.printf("len:%d\r\n", length);
|
||||
qrcode.getDecodeData(buffer, length);
|
||||
Serial.printf("decode data:");
|
||||
for (int i = 0; i < length; i++) {
|
||||
Serial.printf("%c", buffer[i]);
|
||||
canvas.printf("%c", buffer[i]);
|
||||
}
|
||||
Serial.println();
|
||||
canvas.println();
|
||||
canvas.pushSprite(0, 0);
|
||||
}
|
||||
M5.update();
|
||||
if (M5.BtnA.wasPressed()) {
|
||||
// start scan
|
||||
qrcode.setDecodeTrigger(1);
|
||||
}
|
||||
if (M5.BtnB.wasPressed()) {
|
||||
// stop scan
|
||||
qrcode.setDecodeTrigger(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user