Прошу пояснить по функции Serial
- Войдите на сайт для отправки комментариев
Чт, 31/03/2016 - 22:00
Доброго времени сутк!
Я к вам с вопросом по функции или по составлению правильного запроса в яндекс. Вопрос: "Как сделать так, чтоб функция Serial.print() работала из пользовательской функции?. В нижеследующем простеньком скетче представлена проблема. Функцияя вывода строки работает только в setup и в loop, но не работает в сериал... почему? Я пытался найти информацию, но не получилось.
void setup() { Serial.begin(9600); Serial.println("void setup"); } void loop() { Serial.println("void loop"); SerialF; delay(5000); Serial.println("the end of delay"); } void SerialF() { // Serial.begin(9600); пробовал объявлять, но не помогло // while(!Serial); пробовал даже делать эту лишнюю операцию, но толку нет Serial.println("void SerialF"); //вот этот текст не выводится }
Может кто встречал описание этой функции на более-менее приемлемом русском языке?
Serial тут вообще ни при чём. Строку 7 замените на SerialF();
Синтаксис вызова функций читаем.
07
SerialF; -это может быть что угодно, но точно не вызов функции
найдите отличия
07
SerialF(); - а это вызов функции без параметров
А что setup() и loop() не пользовательские функции? А какие?
Serial тут вообще ни при чём. Строку 7 замените на SerialF();
Синтаксис вызова функций читаем.
07
SerialF; -это может быть что угодно, но точно не вызов функции
найдите отличия
07
SerialF(); - а это вызов функции без параметров
Блин, как можно было так лопухнуться??!! Ведь даже не подумал в эту сторону... Спасибо.
А что setup() и loop() не пользовательские функции? А какие?
В силу привычки называю их заводскими :)
Serial тут вообще ни при чём. Строку 7 замените на SerialF();
Синтаксис вызова функций читаем.
07
SerialF; -это может быть что угодно, но точно не вызов функции
найдите отличия
07
SerialF(); - а это вызов функции без параметров
Блин, как можно было так лопухнуться??!! Ведь даже не подумал в эту сторону... Спасибо.
"SerialF" не сказал разве? Например что переменная не объявлена.
SerialF - это указатель на функцию - передает адрес ее расположения в памяти
А траснслятор ничего на
"SerialF" не сказал разве? Например что переменная не объявлена.
А что он должен был сказать? Всё обявлено, операция совершенно законная, а то, что она означает не то, что имел в Виду ТС, так про то компилятору ничего неизвестно.
Раз уж Вы читаете Кернигана и Ритчи, прочитайте раздел 5.11