본문 바로가기

STM3214

[STM32] PWM를 통한 SG-90 서보 모터 제어 - 개발 환경개발 보드 : NUCLEO-F103RB개발 프로그램- STM32 CubeMX : 6.12.0- STM32 CubeIDE : 1.16.01. 서론  많은 액추에이터는 전압을 통해 특정한 각도 및 세기를 제어할 수 있습니다. MCU에서는 DAC을 통해 전압을 제어할 수 있지만, 더 쉽고 간단하게 전압을 직접 조절하지 않고 엑추에이터의 각도 및 세기를 조절할 수 있는 방법이 있습니다. 그 방법이 바로 PWM입니다. PWM을 간략하게 소개하자면 특정 시간내에 전압이 HIGH인 비율을 조절하는 것입니다.    만약 PWM에서 High가 5V이고 25%의 Duty cycle라면 5V X 0.25 = 1.25V와 비슷한 세기를 엑추에이터에 전달하는 것입니다. 그리고 PWM을 사용하면서 주의 사항이 있습니.. 2025. 4. 10.
[STM32] 외부 인터럽트(EXTI : EXTernal Interrupt)를 통해 버튼의 입력 감지 - 개발 환경개발 보드 : NUCLEO-F103RB개발 프로그램- STM32 CubeMX : 6.12.0- STM32 CubeIDE : 1.16.01. 서론  인터럽트를 사용하기 전 사전적 정의부터 확인해보는 것이 좋습니다.  사전적 정의에서도 알 수 있듯이 "방해하다, 중단시키다 등"의 의미를 가지고 있습니다. MCU 관점에서의 인터럽트는 프로그램의 실행 흐름(STM32에서는 main 함수)을 방해 및 중단하고 급하게 처리해야 할 작업(Task)를 의미합니다.   인터럽트를 처리하는 것을 보면 마치 운영체제가 프로세스를 스케쥴링하는 것과 비슷하게 보이지만 반드시 주의 해야할 사항들이 있습니다. - 주의 사항기존 프로그램의 흐름의 영향이 가지 않도록 빠른 시간내 처리를 완료해야한다.중요) HAL_Dela.. 2025. 4. 6.
[STM32] USART / UART를 통한 데이터 송수신 - 개발 환경개발 보드 : NUCLEO-F103RB개발 프로그램- STM32 CubeMX : 6.12.0- STM32 CubeIDE : 1.16.01. 서론  USART(Universal Synchronous Asynchronous Receiver Transmitter)는 MCU으로 통신을 하려고 할때 가장 처음 배우는 통신 방법일 것입니다. 그 이유는 대부분의 개발보드에서 USART으로 PC와 통신할 수 있도록 하는 기능을 제공하고 있기 때문이며, 만약 없더라고 하더라도 USB to TTL을 사서 쉽게 해당 기능을 사용할 수 있기 때문입니다. 또한 그 외 다양한 장점이 있지만, 이번에는 STM32으로 USART를 사용해 PC와 통신하는 기능을 사용해보도록 하겠습니다. 2. 프로젝트 생성  STM32 C.. 2025. 4. 6.
[STM32] GPIO 레지스터를 주소로 직접 접근하여 GPIO 제어 - 개발 환경개발 보드 : NUCLEO-F103RB개발 프로그램- STM32 CubeMX : 6.12.0- STM32 CubeIDE : 1.16.0 - 관련 자료1) RM0008 메뉴얼https://www.st.com/resource/en/reference_manual/rm0008-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf1. 서론  STM32를 개발할 때 STM32에서 제공하는 라이브러리를 사용하여 주변장치를 초기화 및 제어합니다. 그러므로 직접적으로 레지스터를 제어할 이유가 거의 없습니다. 그리고 직접적으로 레지스터를 제어하여 개발하기에는.. 2025. 4. 5.
[STM32] GPIO로 버튼 및 LED 입출력 실습 -개발 환경개발 보드 : NUCLEO-F103RB개발 프로그램- STM32 CubeMX : 6.12.0- STM32 CubeIDE : 1.16.01. 서론  GPIO(General Perpose Input Output)은 새로운 MCU를 다루게 될때 가장 먼저 테스트 해보는 기능 중 하나입니다. 마치 새로운 언어를 배울 때 "Hello world"를 출력 하는 것과 마찬가지입니다. 이번 포스트에서는 GPIO를 통해 보드에 기본적으로 탑재되어 있는 LED와 버튼으로 간단한 입출력을 실습하도록 하겠습니다.2. 프로젝트 생성  STM32 CubeIDE를 사용하셔도 상관없으며, 저의 경우는 VS code를 사용하여 개발할 것이므로 VS code로 개발하시고 싶은 분은 아래 포스트를 참고 하셔서 프로젝트를 생성해.. 2025. 4. 5.
다양한 임베디드 개발 보드에 대한 개인적인 견해 1. 아두이노 보드  임베디드를 처음 접하는 사람들에게는 최고의 보드이라고 생각합니다. 어렵지 않은 개발 환경과 그리고 방대한 라이브러리와 커뮤니티를 통해 조금만 공부하더라도 수준급의 프로젝트를 할 수 있는 최고의 보드라고 생각합니다. 하지만 한계가 보이는 것이 대부분의 AVR의 8bit 프로세서로서 성능의 떨어지는 경우가 많으며 인터럽트를 거의 사용하지 않고 작성하게 되면 오히려 너무 큰 프로젝트에서 사용하기 힘들다는 점이 있습니다. 하지만 이러한 최근 트렌드를 반영하려고 하는지 "아두이노 R4 wifi"에서는 Cortex-M4의 아키텍처의 32bit MCU와 ESP32를 같이 사용하여 부족한 성능을 보안하고 있습니다.- 장점  1. 방대한 라이브러리와 커뮤니티  2. 다루기 쉬운 아두이노 IDE  3.. 2025. 3. 31.