반응형
이전 코드가 이해 했다면 이것은 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 |
댓글