Ошибка "'Serial' does not name a type"
Я получаю ошибку "'Serial' does not name a type"
при компиляции этой программы. Мне нужно, чтобы отображались 8 каналов напряжения. Я уверен, что это простое решение, однако я все еще изучаю программирование Arduino. Я благодарю вас за помощь.
int pin_Out_S0 = 8;
int pin_Out_S1 = 9;
int pin_Out_S2 = 10;
int pin_In_Mux1 = A0;
int Mux1_State[8] = {0};
//float Mux1_State[i] =0;
int RawValue=0;
float Voltage = 0;
void setup() {
pinMode(pin_Out_S0, OUTPUT);
pinMode(pin_Out_S1, OUTPUT);
pinMode(pin_Out_S2, OUTPUT);
pinMode(pin_In_Mux1, INPUT);
Serial.begin(9600);
}
void loop() {
RawValue = analogRead(pin_In_Mux1);
Voltage = (RawValue * 5.0) / 1024; //scale the ADC
updateMux1();
//Serial.println(Mux1_State);
for(int i = 0; i < 8; i ++) {
if(i == 7) {
Serial.println(Mux1_State[i]);
} else {
Serial.print(Mux1_State[i]);
Serial.print(",");
//vout = (value * 5.0) / 1024.0;
}
}
}
void updateMux1 () {
for (int i = 0; i < 8; i++){
digitalWrite(pin_Out_S0, HIGH && (i & B00000001));
digitalWrite(pin_Out_S1, HIGH && (i & B00000010));
digitalWrite(pin_Out_S2, HIGH && (i & B00000100));
Mux1_State[i] = analogRead(pin_In_Mux1);
}
}
Serial.print("Raw Value = " );
Serial.print(RawValue);
@Tom Evans, 👍4
Обсуждение3 ответа
Ваши последние две строки не находятся ни в одной функции. Это сбивает с толку компилятор. Вам нужно переместить эти два оператора внутрь функции.
Поскольку эти операторы ссылаются на RawValue
, я предполагаю, что вы хотите поместить их в loop()
, где RawValue обновляется.
Кроме того, помните, что IDE сообщит вам, в какой строке находится ошибка, что полезно при отладке ошибок компиляции.
Пожалуйста, поместите эти строки внутрь функционального блока loop():
Serial.print("Raw Value = " );
Serial.print(RawValue);
Должно выглядеть примерно так:
void loop() {
RawValue = analogRead(pin_In_Mux1);
Voltage = (RawValue * 5.0) / 1024; //scale the ADC
updateMux1();
//Serial.println(Mux1_State);
for(int i = 0; i < 8; i ++) {
if(i == 7) {
Serial.println(Mux1_State[i]);
} else {
Serial.print(Mux1_State[i]);
Serial.print(",");
//vout = (value * 5.0) / 1024.0;
}
}
Serial.print("Raw Value = " );
Serial.print(RawValue);
}
Это должно устранить по крайней мере первую проблему с вашим кодом.
Ура!
В дополнение к хорошим ответам Микаэля и Юинта, все должно быть заключено в {фигурные скобки}, иначе IDE не будет знать, где оно находится. Если вы не хотите, чтобы последние 2 строки в вашем сегменте цикла вы можете поместить их в отдельный раздел void xxxx ()
, чтобы они вызывались, когда придет время (например, с помощью ISR с функцией enableinterrupt
).
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Построение графика на Python с использованием Tkinter Canvas
- Команда strtok() с Serial связью
- Как отправить целое число через pyserial с Python на Arduino и получить тот же результат?
- Сделать плату Arduino одновременно и USB-накопителем, и клавиатурой?
- Ошибка 'Serial' was not declared in this scope
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Bluetooth-модуль HC-05 не принимает AT-команды
Такие вещи, как
pin_Out_S0
, необходимо объявить, в противном случае они будут генерировать сообщения об ошибках., @Nick Gammon