1과 0 로 표현하는 신호
특정 전압을 걸면 “1” 로 인식 (=High)
0V(Ground) 이라면 “0” 으로 인식 (=Low)
과거 5V 를 많이 사용했으며 , 현재는 3.3V 가 주로 쓰임
서로신호를 맞추어 동작되기 위해 사용
박자를 맞추어 , 여러 장치들이 동시에 동작되기 위함 동기화
를 위함
Clock Generator
주기적인 클럭 발생장치를 Oscillator ( 발진기 ) 라고 한다. 클럭을 기준으로 동작하기 때문에 꼭 필요하다.
MCU 내부에도 Oscillator 가 있으며 필요시 외부에 추가로 Oscillator 달아주곤 한다.
빠른 속도
의 클럭을 발진할 수 있음프리스케일러 회로를 사용하여 원하는 클럭에 낮추어 맞춘다.
두장치간 통신을 위해 UART / I2C / SPI통신 중 선택해서 사용 가능하다.
F103RB보드와 PC 간 문자를 주고 받는 통신
1. 보드에서 printf 사용시 : PC 에서 글자 출력
2. 보드에서 scanf 사용시 : PC 에서 문자 입력
초기셋팅
Connectivity > USART2 > Mode를 Asynchronus로 바꿔주기!
int _read(int file, char *ptr, int len) // printf 실행시 호출
{
HAL_UART_Receive(&huart2, (uint8_t*)ptr, 1, 0xFFFF);
HAL_UART_Transmit(&huart2, (uint8_t*)ptr,1,100);
return 1;
}
int _write(int file, char *ptr, int len) // scanf 실행시 호출
{
HAL_UART_Transmit(&huart2, (uint8_t*)ptr, len, 100);
return len;
}
함수 재정의는 main 함수 위쪽에, 실행 코드는 main 함수 내부 while문에 작성
============================ ========================================
uint8_t buf[10] = "HI";
while(1)
{
HAL_UART_Transmit(&huart2, buf, 10, 100); // UART에 Text 출력방법 1
HAL_Delay(100);
printf("jaehoon\r\n"); // UART에 Text 출력방법 2 - 상단에 정의해준 _write함수가 실행된다.
HAL_Delay(1000);
}