首页 > 解决方案 > C++ 多字符字符常量

问题描述

使用 arduino 键盘在 7 段显示器上输出数字。我正在使用 robojax-Keypad 库执行此操作。它得到的错误是: \7SegDisKeypad.ino:245:14: warning: multi-character character constant [-Wmultichar]我已经检查以确保所有输入值都是正确的。我不确定为什么会发生这种情况,也不知道我将如何解决它。这是我的代码:(取出 7 段显示代码)

#include <Keypad.h>


int E = 13;
int D = 12;
int C = 11;
int DP = 10;
int B = 9;
int A = 8;
int F = 7;
int G = 6;

int k1 = A0;
int k2 = A1;
int k3 = A2;
int k4 = A3;
int k5 = 5;
int k6 = 4;
int k7 = 3;
int k8 = 2;

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = {A0, A1, A2, A3}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5,4,3,2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

//7 Seg display code here

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(E, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(DP, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(A, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);

  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  char key = keypad.getKey();

  if (key == 'k1') {
    one();
  }


}

这是我第一次使用这个库,而且我对 c++ 和 arduinos 还是很陌生,所以非常感谢任何帮助!非常感谢,詹姆斯

标签: c++compiler-errorsarduino

解决方案


看来您正在使用这个键盘库

然后keypad.getKey()返回键盘的实际字符,由 初始化keys

因此,如果您按下该5键,keypad.getKey()则将返回字符'5'


推荐阅读