C++프로그래밍

2013.05.06_구조체입출력(1)

성엽이 2013. 5. 6. 17:27

▶ 구조체 입출력

#include < stdio.h >

int main()
{
  char buffer[11];

  fgets(buffer, sizeof(buffer)-1, stdin);
  fputs(buffer, stdout);

  if(buffer[strlen(buffer)-1== '\n')
  {
    buffer[strlen(buffer)-1= 0;
  }
  
  printf("[%s]\n",buffer);  // 대괄호 쓰면 안보이는 값보기 쉽게하려고씀.
  
  return 0;
}
 





요즘엔 보통 3개를 말함( FILE *stdin, FILE *stdout, FILE *stderr ). 표준파일은 운영체제에서 실행시 자동으로 열림.  




Record 란 ?  

 Data Base 에 각각의 단위하나를 Record 라고 한다.




비동기 & 동기 신호 :  HLLLHHHH ->(신호보냄) Low인 상태에서 High가 시작부터 보내지기때문에 신호를 받는시점을 알지만
                                LHHLHLLL->
(신호보냄) Low인 상태에서 LLL 의 신호는 받는시점을 정확히 알 수가 없다.

 이를 방지하기 위해 신호의 처음부분, 끝부분에 Head , tail (둘을 묶어서 trailer라고 함을 이용해 신호의 시점을 알아보게 보내는 방법을 사용. (동기) 

 하지만 필요이상의 신호가 붙게되고, 속도면에서도 안좋아서 위 그림과 같이 SCK (동기신호) 를 이용해 신호가 보내질때마다 반응을 하고,

 그때 DATA 를 바로 보낼수 있도록 하는 방법을 사용하였다. (비동기) , 대신 회로가 두개가 쓰이고 (Tx, Rx) 복잡하며, 비싸짐.

시리얼통신규약으로 통신할때 전압은 항상 정해져있다. -12~+12 이를 지켜야하므로 증폭을 시켜줘야하는데 이 역할을 MAX3232 가 한다.

 USART(UART) 통신 역시 MAX3232 부분에서 담당한다.  



 : MAX3232 는 최고 1Mbps 의 속도를 씀. 송수신하는 속도는 최소단위로 맞춰줘야한다. ex) 받는쪽에 4Kbps이면 , 보내는쪽 역시 4Kbps 여야한다. 



USART0, USART1 같은경우, 동기신호로 복잡한 회로로 구성되어있지만, DBGU ( UART ) 같은 경우는 비동기로 간단하다!  



 핀을 꼭 확인해서 쓰도록하자 !!!! PA9 - DRXD , PA10 - DTXD