Код Arduino работает через IDE, а не через код Arduino PlatformIO

У меня есть рабочий код Arduino. Код работает, как и предполагалось, когда я загружаю его в Arduino Nano, используя старый загрузчик через Arduino IDE. Однако, когда я загружаю тот же код через PlatformIO, код загружается успешно, но не работает должным образом. В процессе загрузки нет ошибок или предупреждений, и я не могу понять, что может быть причиной проблемы.

Теперь для устранения неполадок я использую простой пример мерцания.

#include <Arduino.h>
// функция настройки запускается один раз, когда вы нажимаете сброс или питание платы
void setup() {
  // инициализируем цифровой вывод LED_BUILTIN как выход.
  pinMode(LED_BUILTIN, OUTPUT);
}

// функция цикла запускается снова и снова навсегда
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // включаем светодиод (HIGH - уровень напряжения)
  delay(1000);                      // ждем секунду
  digitalWrite(LED_BUILTIN, LOW);   // выключаем светодиод, понижая напряжение
  delay(1000);                      // ждем секунду
}

1-я конфигурация PlatformIO .ini

[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino
debug_port = COM3
monitor_speed = 115200

Я также пытался подписаться, но безуспешно.

2-я конфигурация PlatformIO .ini

[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino
board_oldbootloader = true
debug_port = COM3
monitor_speed = 115200

Есть предложения по устранению этой проблемы или ее причина? Спасибо.

, 👍2

Обсуждение

Функция мерцания программируется IDE. В случае, если я программирую с помощью Arduino IDE, код загружается на плату и работает как положено (т.е. светодиод мигает). В случае, если я программирую с помощью PlatformIO, код загружается на плату, но не работает должным образом (т.е. (светодиод не мигает)., @DeXter

Это очень странно. Я пробовал разные решения, но ничего не работает., @DeXter

включить светодиод в настройках... оставить loop() пустым... что произойдет?, @jsotola

напечатайте значение LED_BUILTIN на последовательном мониторе, чтобы увидеть его значение ... также попробуйте обратиться к выводу светодиода по номеру, @jsotola

Мои извинения. Не знаком, 1-й вопрос., @DeXter

Ок, случилось странное. :D 1) Я сделал, как ты сказал. Я оставил петлю пустой и включил светодиод в настройках. Результат: светодиод не горит. 2) Я раскомментировал цикл и снова загрузил. Светодиод начал мигать. 3) Проблема решилась сама собой. Любая идея, что пошло правильно., @DeXter

вы никогда не загружали скетч с первого раза, @jsotola


1 ответ


2

Некоторое время у меня было похожее поведение, и ничего, что я бы изменил в файле конфигурации PlatformIO .ini, похоже, не помогло. Я попытался перезапустить и очистить проект, но это тоже не помогло.

В конце концов мне помогло начать новый новый проект PlatformIO и перенести файлы.

Я подозреваю, что при определенных условиях (которые могут быть связаны с настройками проекта) PlatformIO не может загрузить скрипт, хотя утверждает, что загрузка прошла успешно.

,