아!두이노, 라즈베리, 코딩 노가다

Uart 시리얼 통신 #5 본문

STM32

Uart 시리얼 통신 #5

아이스뭐라카노 2025. 12. 28. 11:23
반응형

 

아래는 2가지 아두이노 예제를 제시하고 있다.

하나는 한줄, 한 문장을 읽는것이고 

다른 하나는 구조체를 읽는 문장이다. 

약간의 차이는 있지만 근본적인 방법은 같다.

 

아두이노에서는 인터럽트 방식이 안되는것은 아니지만 이유는 모르지만 스케줄링 방식을 선호 한다.

선호 한다는것도 본인의 편견일수도 있다.

그래도 아래 방식을 STM에 적용해 볼것이다.

 

예제1)

  char  c; 
  char *p;
  char buf[20];
 
  p = buf;
  while((p - buf) < 19)
  {
      if(bt.available()) 
      {
        c = bt.read();
        if (c == '\r' || c == '\n') break;
        //*p = c; p++; 
        *(p ++) = c;
        *p = '\0';
      }
  }
  return String(buf);

 

 

예제2)

    char c;
    if (sSerial.available())
    { 
          char  c; 
          char *p;
          Info adcinfo;
        
          p = (char*)&adcinfo;
          memset(p, 0x00, sizeof(adcinfo));
          while( (p -  ((char*)&adcinfo)) < sizeof(adcinfo) )
          {
              if(sSerial.available()) 
              {
                c = sSerial.read();
                if (p == (char*)&adcinfo && c != version) continue; 
                *(p++) = c; //*p = c; p++; 
                //*p = '\0'; //bug                
                //if (c == '\r' || c == '\n') break;
              }
          }
          if(adcinfo.ver==version && adcinfo.chk==(char)check)
          {
 
              char buf2[50];          
              sprintf(buf2, "receive  ====> %dbyte \n", sizeof(adcinfo));         
              print_temp(adcinfo);      
              //sSerial.write(buf2);  
          }
          else  Serial.println("error ");
    }
      
    return ;

'STM32' 카테고리의 다른 글

Uart 시리얼 통신 #4  (0) 2025.12.26
Uart 시리얼 통신 #3  (0) 2025.12.25
Uart 시리얼 통신 #2  (0) 2025.12.23
Uart 시리얼 통신 #1  (0) 2025.12.23
LED On/Off #8  (0) 2025.12.21