Ошибка 'Serial' was not declared in this scope

Я добавляю датчик пыли в свой проект частиц-фотонов дома

Я получил это Проект GitHub, который я хочу протестировать перед реализацией окончательного кода.

Я не являюсь экспертом в cpp, я хотел объединить кодовую базу датчика пыли в отдельную библиотеку, поэтому я создал новый файл пылиSensor.cpp и сохранил код, указанный выше.

но я постоянно получаю сообщение об ошибке:

"Serial" не был объявлен в этой области

'Serial1' не был объявлен в этой области

DEBUG не был объявлен в этой области

DEC в этой области не был объявлен dustSensor.cpp:13:57:

У меня есть Serial.begin(57600), вызываемый в функции setup(), но я все равно получаю вышеуказанную ошибку

, 👍1

Обсуждение

добавьте #include <Arduno.h> в cpp, @Juraj

вы можете найти ее, открыв проект частиц в настольной IDE, нажав кнопки «Просмотр и управление библиотеками» и найдя нужную библиотеку. это автоматически включает ваши библиотеки. см. эту [документацию](https://docs.particle.io/tutorials/developer-tools/dev/)., @abu-ahmed al-khatiri


1 ответ


5

Я узнал, что мне нужно включить заголовочный файл Arduino.h

Кроме того, как я узнал о файлах .ino и .cpp, файлы .ino прозрачно включают в себя частицу.

Другое отличие состоит в том, что файлы .ino генерируют за вас предварительные объявления. Это необходимо, если вы реализовали функцию в файле позже, чем при ее первом использовании. Например, если вы передадите функцию чему-то вроде Particle.subscribe в setup(), но реализовали ее дальше в файле.

,

Техническое название этого — «прямая ссылка». Историческое примечание: необходимость объявлять функцию перед прямой ссылкой возникла из-за того, что ранние компиляторы C были написаны так, чтобы читать исходный код только один раз, а не один раз, чтобы найти определения функций и переменных и снова сгенерировать код, как только его компоненты были известны. Такой компилятор было легче писать, и он работал быстрее (что в то время вызывало большую озабоченность, чем сегодня)., @JRobert