전역 객체 생성자가 Arduino에서 처음 2 자만 인쇄하는 이유는 무엇입니까?

무스타파

Fred라는 클래스를 만들었습니다. 여기에는 .h 및 .cpp 파일이 있습니다.

Fred.h

#ifndef Fred_h
#define Fred_h
#include "Arduino.h"
class Fred
  {
   public:
     Fred();
  };
#endif

Fred.cpp

#include "Fred.h"
Fred::Fred()
{
  Serial.begin(115200);
  Serial.println("Hello Arduino!");
}

그리고 스케치에서 방금 클래스 객체를 전역으로 초기화했습니다.

#include <Fred.h>
Fred a;
void setup()
{}
void loop()
{}

Hello Arduino를 인쇄해야합니다! 시리얼 터미널에서 "He"만 출력합니다. 매우 이상합니다! SIOF (Static Initialization Order Fiasco)에 대해 읽었습니다. 문제 일 수 있지만, 그렇다면 왜 인쇄하지 않고 2 바이트를 출력하는지 설정 함수에서 개체를 선언하면 제대로 작동합니다.

데이비드 슈워츠

설정 될 것이라는 Serial보장이 없기 때문에 정적 개체의 생성자에서 액세스 할 수 없습니다 Serial. 를 입력 할 때까지 "실제 작업"을하고 싶지 않습니다 main.

arduino의 직렬 포트 구현에는 하드웨어 버퍼링의 두 문자 만있을 것입니다. 처음 두 개가 전송되면 나머지는 대기열에 넣고 인터럽트 서비스를 정렬하는 데 필요한 논리가 아직 설정되지 않았기 때문에 버려집니다.

따라서 첫 번째 캐릭터가 즉시 발송되기 시작합니다. 두 번째 문자는 첫 번째 문자가 끝나기를 기다리는 하드웨어 버퍼에 있습니다. 나머지 문자는 인터럽트 핸들러로 전달되어야합니다 (이전 문자가 완전히 전송 되었기 때문에 버퍼가 비어있을 때마다 새 문자가 전송되기 시작할 수 있음). 그러나 분명히 아직 설정되지 않았습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

기본 클래스의 멤버가 생성자에서 처음 초기화 된 값을 유지하지 않는 이유는 무엇입니까?

분류에서Dev

비 정적 생성자 내에서 정적 읽기 전용 필드 객체에 대해 SendCompletedEventHandler를 정의 할 수있는 이유는 무엇입니까?

분류에서Dev

이 래핑 할당 자의 생성자가 템플릿 대체 (완벽한 전달 ctor) 중에 잘못된 유형을받는 이유는 무엇입니까?

분류에서Dev

연산자 + 오버로드가 참조로 전달 되었음에도 불구하고 복사 생성자를 호출하는 이유는 무엇입니까?

분류에서Dev

작업자 QObject를 만들 때 QThread 객체에 완료 신호가없는 이유는 무엇입니까?

분류에서Dev

자식에게 전달 된 함수에 대해 속성 속성을 읽을 수 없음 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

케이스 클래스에서 개인 생성자가 여전히 보이는 이유는 무엇입니까?

분류에서Dev

numpy 객체가 전역으로 취급되는 이유는 무엇입니까?

분류에서Dev

문자열 객체에서 속성 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

해시를 예상하는 생성자에게 연관 역할을하는 해시 류 객체를 전달하는 방법은 무엇입니까?

분류에서Dev

행당 처음 10 자 (txt 파일)에서만 숫자 및 문자 조합의 문자열을 찾아 전체 행을 인쇄하는 일괄 처리

분류에서Dev

두 문자열을 연결하고 인수로 전달해도 새 문자열 객체가 생성되지 않는 이유는 무엇입니까?

분류에서Dev

생성자에서 int 및 String 배열로 객체를 만드는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 여전히 객체 객체 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

타임 스탬프에서 생성 된 Python datetime 객체가 UTC로 자동 생성되지 않는 이유는 무엇입니까?

분류에서Dev

함수 내부에 명시 적 생성자가있는 정적 객체 선언으로 인해 코드가 끊어지는 이유는 무엇입니까?

분류에서Dev

arr 배열이 생성 된 후 사용자 객체에없는 이유는 무엇입니까?

분류에서Dev

C ++에서 참조로 객체를 전달하기 위해 기본 생성자가 필요한 이유는 무엇입니까?

분류에서Dev

Spring이 Singleton 클래스에서 2 개의 객체를 생성하는 이유는 무엇입니까?

분류에서Dev

Clang ++가 다른 정적 라이브러리에서 전역 개체 생성자를 실행하지 않는 이유는 무엇입니까?

분류에서Dev

생성자를 추가하면 Angular 2가 여기에서 깨지는 이유는 무엇입니까?

분류에서Dev

변수가 전역으로 선언 된 경우에도 Javascript 코드가 '정의되지 않음'을 인쇄하는 이유는 무엇입니까?

분류에서Dev

FindNextFile 및 FindFirstFile이 처음에이 두 가지 이상한 문자열을 인쇄하는 이유는 무엇입니까?

분류에서Dev

setBackground가 처음에만 작동하는 이유는 무엇입니까? (JPanel)

분류에서Dev

PHP에서 전체 div를 한 번만 생성하고 인쇄하는 좋은 방법은 무엇입니까?

분류에서Dev

객체 초기화에서 할당 연산자에 의해 생성자에 매개 변수를 전달할 수있는 이유는 무엇입니까?

분류에서Dev

Java에서 객체를 저장하는 방법은 무엇입니까? 생성자의 역 직렬화

분류에서Dev

Angular4-사용자 정의 toJSON ()이 새 객체에서만 호출되는 이유는 무엇입니까?

분류에서Dev

전체 문자열을 읽고 getchar로 인쇄하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    기본 클래스의 멤버가 생성자에서 처음 초기화 된 값을 유지하지 않는 이유는 무엇입니까?

  2. 2

    비 정적 생성자 내에서 정적 읽기 전용 필드 객체에 대해 SendCompletedEventHandler를 정의 할 수있는 이유는 무엇입니까?

  3. 3

    이 래핑 할당 자의 생성자가 템플릿 대체 (완벽한 전달 ctor) 중에 잘못된 유형을받는 이유는 무엇입니까?

  4. 4

    연산자 + 오버로드가 참조로 전달 되었음에도 불구하고 복사 생성자를 호출하는 이유는 무엇입니까?

  5. 5

    작업자 QObject를 만들 때 QThread 객체에 완료 신호가없는 이유는 무엇입니까?

  6. 6

    자식에게 전달 된 함수에 대해 속성 속성을 읽을 수 없음 오류가 발생하는 이유는 무엇입니까?

  7. 7

    케이스 클래스에서 개인 생성자가 여전히 보이는 이유는 무엇입니까?

  8. 8

    numpy 객체가 전역으로 취급되는 이유는 무엇입니까?

  9. 9

    문자열 객체에서 속성 오류가 발생하는 이유는 무엇입니까?

  10. 10

    해시를 예상하는 생성자에게 연관 역할을하는 해시 류 객체를 전달하는 방법은 무엇입니까?

  11. 11

    행당 처음 10 자 (txt 파일)에서만 숫자 및 문자 조합의 문자열을 찾아 전체 행을 인쇄하는 일괄 처리

  12. 12

    두 문자열을 연결하고 인수로 전달해도 새 문자열 객체가 생성되지 않는 이유는 무엇입니까?

  13. 13

    생성자에서 int 및 String 배열로 객체를 만드는 방법은 무엇입니까?

  14. 14

    자바 스크립트에서 여전히 객체 객체 오류가 발생하는 이유는 무엇입니까?

  15. 15

    타임 스탬프에서 생성 된 Python datetime 객체가 UTC로 자동 생성되지 않는 이유는 무엇입니까?

  16. 16

    함수 내부에 명시 적 생성자가있는 정적 객체 선언으로 인해 코드가 끊어지는 이유는 무엇입니까?

  17. 17

    arr 배열이 생성 된 후 사용자 객체에없는 이유는 무엇입니까?

  18. 18

    C ++에서 참조로 객체를 전달하기 위해 기본 생성자가 필요한 이유는 무엇입니까?

  19. 19

    Spring이 Singleton 클래스에서 2 개의 객체를 생성하는 이유는 무엇입니까?

  20. 20

    Clang ++가 다른 정적 라이브러리에서 전역 개체 생성자를 실행하지 않는 이유는 무엇입니까?

  21. 21

    생성자를 추가하면 Angular 2가 여기에서 깨지는 이유는 무엇입니까?

  22. 22

    변수가 전역으로 선언 된 경우에도 Javascript 코드가 '정의되지 않음'을 인쇄하는 이유는 무엇입니까?

  23. 23

    FindNextFile 및 FindFirstFile이 처음에이 두 가지 이상한 문자열을 인쇄하는 이유는 무엇입니까?

  24. 24

    setBackground가 처음에만 작동하는 이유는 무엇입니까? (JPanel)

  25. 25

    PHP에서 전체 div를 한 번만 생성하고 인쇄하는 좋은 방법은 무엇입니까?

  26. 26

    객체 초기화에서 할당 연산자에 의해 생성자에 매개 변수를 전달할 수있는 이유는 무엇입니까?

  27. 27

    Java에서 객체를 저장하는 방법은 무엇입니까? 생성자의 역 직렬화

  28. 28

    Angular4-사용자 정의 toJSON ()이 새 객체에서만 호출되는 이유는 무엇입니까?

  29. 29

    전체 문자열을 읽고 getchar로 인쇄하는 이유는 무엇입니까?

뜨겁다태그

보관