Arduino, nRF52, STM32, ESP32
STM32F103C6 기본 입출력 속도
바람C
2022. 5. 5. 16:39
아두이노 IDE 를 사용하여 STM32F103C6 보드의 기본 IO 속도를 측정해 본다.
기본 Blink 소스를 사용하되 delay 함수 없이 바로 ON/OFF 를 반복하게 하고 시간 간격을 오실로스코프로 측정한다.
아두이노 IDE 이용한 기본 소스
void setup()
{
pinMode(PC13, OUTPUT);
}
void loop()
{
digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW
}
기본소스는 delay 없는 blink 이고 이때의 오실로스코트 기록은 다음과 같다.
코드의 기본 구조는
- 반복
- PC13 - HIGH
- PC13- LOW
이고, 이때의 시간은 830 nS + 690 ns 가 된다. 즉 PC13 포트에 HIGH, LOW 를 주는 시간은 690 ns * 2 이고, 기타 처리 시간이 140 ns 가 된다.
다음번 실험은 digitalWrite() 가 아닌 STM32 에서 바로 IO 를 다루는 방법으로 실험해볼 예정이다.
실험결과
STM32F103C6 보드에서 아두이노 IDE 에서 digitalWrite() 함수를 사용한 결과
포트에 HIGH, LOW 를 출력하는 시간은 690ns 로 확인됨