Плата перестает работать при записи serial

Я только начал использовать Arduino IDE для своего XMC1100XMC2Go. Информацию о микроконтроллере можно найти здесь: https://github.com/Infineon/XMC-for -Arduino/wiki/XMC-2Go

Теперь я начал с моих первых кодов и хочу печатать на последовательном мониторе с помощью этого кода:

*/
/* For on board LEDs */
#include <LED.h>

/* Create an LED object */
LED Led;

//#определить SERIAL_DEBUG 1

int p_LED = 5;
int p_Button = 4;
int i_stateButton = 0;

void setup()
{
  Led.Add(LED1);            // Настраиваем светодиоды
  Led.Add(LED2);
  pinMode(p_LED, OUTPUT);
  pinMode(p_Button, INPUT);

  // Установить состояние светодиодов по умолчанию
  Led.On(LED2);
  Led.Off(LED1);

  digitalWrite(p_LED, LOW);
  Serial.print("Hello World!");

  Serial.begin(9600);
}


void loop()
{
  Serial.write("Hello World!");
  Serial.println(i_stateButton);
  delay(200);
  Led.Toggle (LED2);
  Led.Toggle(LED1);

  i_stateButton = digitalRead(p_Button);
  // цифровое переключение (p_LED);
  digitalWrite(p_LED, i_stateButton);
}

Я проверил в инструментах, что SerialOutput настроен на ПК (https://github.com/Infineon/XMC-for-Arduino/blob/master/variants/XMC1100/config/XMC1100_XMC2GO/pins_arduino.h#L54)

Есть два порта, COM1 и COM3. Я могу отправлять новые скетчи на микроконтроллер с помощью COM3. Я проверил свой последовательный монитор, и он тоже настроен на COM3.

Скорость передачи одинакова для обоих (код и монитор)

Теперь, когда я отправляю приведенный выше скетч в микроконтроллер, он перестает работать. один светодиод горит, а другой выключен. Но они уже не меняют состояние. На мониторе ничего не появляется. Когда я удаляю обе строки Serial.write("Hello World!"); Serial.println(i_stateButton); и отправить скетч, светодиоды снова начнут мигать.

Я почти уверен, что это какая-то проблема с конфигурацией, но я не могу понять, что это такое. У кого-нибудь есть идеи?

, 👍1

Обсуждение

Возможно, вам следует избегать печати в Serial перед вызовом Serial.begin()., @Edgar Bonet

serial.begin() находится в части установки. Или это относится к циклу?, @Stack

Что у вас есть право _before_ Serial.begin()?, @Edgar Bonet

Ой. Спасибо, @Stack

Был Serial.print("Hello World!"); перед Serial.begin(9600); Спасибо @Edgar Bonet, @Stack

на обычном Arduino это не останавливает скетч, @Juraj

@EdgarBonet Это звучит как ответ. Возможно, превратите свой комментарий в ответ. Stack Exchange подумает, что в этом разделе Arduino очень мало ответов *если вы, ребята, продолжите отвечать в комментариях*., @Nick Gammon


1 ответ


Лучший ответ:

1

В setup() у вас есть:

Serial.print("Hello World!");
Serial.begin(9600);

Следует избегать печати на последовательный порт, прежде чем включить его с помощью Serial.begin().

,