본문 바로가기
아두이노/보드

아두이노 통신 번외편 -#2

by 오징어땅콩2 2021. 11. 20.
반응형

이전 코드가 이해 했다면 이것은 1분이면 이해 할 수 있는 단순한 코드 이다.

- 소프트웨어 시리얼을 사용하지 않고 하드웨어 시리얼을 사용하고 싶다면 아래와 같이 간단하게 고치면 된다.

- 쉽게 말해서 코드자체가 변경되지는 않는다. 단지 하드웨어, 혹은 시리얼 차이만 변경되는것이다.

- 아두이노가 C언어가 아니라 C++ 이기 떄문에 함수이름은 동일해도 상관없다.  그래서 아래코드가 가능하다.

 

void read_serial(Info& _info, SoftwareSerial& ss);
void read_serial(Info& _info, HardwareSerial& ss);

 

void read_serial(Info& _info, SoftwareSerial& ss)
{   
    memset(&_info, 0x00, sizeof(Info)); 
    if (ss.available())
    { 
          char  c; 
          char *p;
          
          p = (char*)&_info;
          while( (p -  ((char*)&_info)) < sizeof(Info) )
          {
              if(ss.available()) 
              {
                c = ss.read();
                //*p = c; p++; 
                *(p++) = c;
                *p = '\0';                
                if (c == '\r' || c == '\n') break;
              }
          }
          _info.ver = version;
    }
    
    return ;
}

void read_serial(Info& _info, HardwareSerial& ss)
{   
    memset(&_info, 0x00, sizeof(Info)); 
    if (ss.available())
    { 
          char  c; 
          char *p;
          
          p = (char*)&_info;
          while( (p -  ((char*)&_info)) < sizeof(Info) )
          {
              if(ss.available()) 
              {
                c = ss.read();
                //*p = c; p++; 
                *(p++) = c;
                *p = '\0';                
                if (c == '\r' || c == '\n') break;
              }
          }
          _info.ver = version;
    }
    
    return ;
}

 

'아두이노 > 보드' 카테고리의 다른 글

아두이노 통신 번외편 -#4  (0) 2021.11.20
아두이노 통신 번외편 -#3  (0) 2021.11.20
아두이노 통신 번외편 -#1  (0) 2021.11.20
아두이노 통신 UNO TO UNO -#5  (0) 2021.11.16
아두이노 통신 UNO TO UNO -#4  (0) 2021.11.16

댓글