반응형

MCU/Learn STM32F103 basics 4

[stm32f103] micros(), delay_us() 사용하기

STM HAL 라이브러리에서 기본 제공하는 딜레이 함수는 HAL_Delay(), 카운터 함수는 HAL_GetTick() 이다. 이 두함수는 모두 ms 단위로 동작한다. 그러나 프로그래밍을 하다보면 us 단위로 제어가 필요한 경우가 있다. 이에 us 단위의 카운터, 딜레이 함수의 사용 방법에 대해서 알아보자.1. 아래 깃허브를 통해 micros.h 파일 다운로드 GitHub - t-shaped-person/microsContribute to t-shaped-person/micros development by creating an account on GitHub.github.com 2. micros.h 파일 참조#include "micros.h" 3. DWT 초기화DWT_Init(); 4. delay_us(..

[stm32f103] 정확한 주기로 led 제어하기 - HAL_GetTick() 사용

led 제어만을 목적으로 하는 단순한 프로그램이 아니고서는 HAL_Delay 함수 사용은 자제하는 것이 좋다. 왜냐하면 HAL_Delay 함수 사용중에는 다른 작업을 할 수 없고 다른 작업이 많아서 지연이 발생할 경우 HAL_Delay 함수 실행 시점도 지연이 발생하기 때문이다. 좀 과장해서 설명하자면 500ms 마다 led가 점멸하도록 코딩했는데 지연으로 인해 1000ms 마다 led가 점멸할 수도 있다. 그래서 다른 작업에 영향을 주거나 받는 것이 최소화 될 수 있도록 아래와 같이 주로 코딩을 한다. 1. 기본 led 제어 설정은 아래를 참조하자. [stm32f103] led 제어하기 - HAL_Delay() 사용 @@ GPIO_Output 설정과 HAL_Delay()를 사용하여 led를 제어해 보자..

[stm32f103] led 제어하기 - HAL_Delay() 사용

@@ GPIO_Output 설정과 HAL_Delay()를 사용하여 led를 제어해 보자. @@ 개발보드의 PC13에 led가 연결되어 있다. 1. 기본 cubemx 설정은 아래를 참조하자. [stm32f103] STM32CubeMX 필수 기본 설정 @@ 보드: stm32f103c8t6 개발보드 @@ 디버거: st-link v2 @@ IDE: IAR Embedded Workbench IDE - ARM 7.70.1 1. STM32CubeMX 실행 > File > New Project... 클릭 > New Project 팝업창 뜸 아래 팝업창에서 stm32f103c8t6 검색 > 하단부 stm32f10 t-shaped-person.tistory.com 2. pinout에서 PC13 마우스 좌클릭 > GPIO_..

[stm32f103] STM32CubeMX 필수 기본 설정

@@ 보드: stm32f103c8t6 개발보드 @@ 디버거: st-link v2 @@ IDE: IAR Embedded Workbench IDE - ARM 7.70.1 1. STM32CubeMX 실행 > File > New Project... > New Project 팝업창 @ 팝업창에서 stm32f103c8t6 검색 > 하단부 stm32f103c8t6 더블 클릭 2. System Core > RCC > High Speed Clock (HSE) @ 외부 크리스탈 사용해서 Crystal/Ceramic Resonator 선택 3. System Core > SYS > Debug @ st-link v2 swd 디버거 사용해서 Serial Wire 선택 4. Clock Configuration 탭으로 이동 @ HS..

반응형