본문 바로가기
728x90
반응형

전체 글191

[STM32] GPIO 관련 HAL 함수 GPIO 관련 HAL 함수STM32에서 GPIO 입력/출력을 제어할 때 주로 쓰이는 함수를 정리한다.1. 핀 상태 쓰기 (출력) HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);특정 GPIO 핀에 High(1) 또는 Low(0) 값을 출력.PinState: GPIO_PIN_SET / GPIO_PIN_RESET예시:HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // PA5 핀 HIGH 출력 HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // PA5 핀 LOW 출력2. 핀 상태 읽기 (입력) GPIO_PinState.. 2025. 9. 7.
[STM32] 6. Built-in Button을 사용하여 built-in LED Control 지금까지는 GPIO를 Output으로만 설정하여 LED를 점멸했다. 이번에는 Nucleo Board에 Built-in Button으로 Built-in LED를 컨트롤할 것이다. 프로젝트 생성 프로젝트 이름은 3_built-in_button_LED이다. GPIO 설정 보드메뉴얼 없이 Pintout Map에서 찾아보자. Built-in Button은 Blue PushButton(B1)이고, Built-in LED는 이전 프로젝트에서 사용했었던 LD2이다. 여기서 B1은 Default로 GPIO_EXTI13으로 설정되어 있는데 GPIO_Input으로 바꿔준 후, 저장한다. FW 코딩 /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_WritePin(GPIO.. 2025. 9. 7.
[STM32] 5. Blink LED Built-in LED를 점멸해봤으니 이제 실제 LED를 점멸할 차례이다. 프로젝트 생성 Board Selector로 프로젝트를 생성하고, 프로젝트 이름은 2_blink_LED로 한다. GPIO 선택하기 22번 GND를 사용하고, PC0 핀을 LED에 전압을 인가하는 핀으로 사용한다. Pinout view에서 PC0, PC1 핀 위에 마우스를 올려놓은 후 클릭한다. GPIO_Output 메뉴를 선택한다. 선택이 완료되면 핀 녹색으로 표시된다. Blink 코딩 /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_0); HAL_Delay(500); /* USER CODE END WHILE */ HAL.. 2025. 9. 7.
[STM32] 4. Blink built-in LED 이번에는 Nucleo Board 자체에 내장된 LED를 깜빡이는 실습을 할 생각이다. 프로젝트 생성다시 프로젝트 생성하자. 이번에는 MCU/MPU Selector가 아니라 Board Selector로 프로젝트를 생성한다. STM32CubeIDE에서 새 프로젝트를 시작할 때 MCU/MPU Selector는 칩 자체를 선택해 모든 설정을 수동으로 해야 하는 반면, Board Selector는 공식 개발 보드를 선택해 해당 보드에 맞는 핀, 클럭, 주변 장치 설정이 자동으로 완료되어 편리하다. 1_blink_built-in_LED 라는 프로젝트를 생성하면, 위와 같은 Pinout & Configuration 화면이 나타난다. 내장 LED 찾기프로젝트 생성을 완료했으니, 보드 위에 내장 LED가 어디에 .. 2025. 9. 7.
[STM32] 3. STM32Cube 프로젝트 생성 오늘은 STM32Cube로 프로젝트를 생성하는 법을 공부한다. 프로젝트 시작 1. STM32Cube 실행 후, File->New->STM32 Project 2. Target 선택 Commercial Part Number에 MCU 또는 Board의 제품명을 입력한다. 나는 STM32F103RB 사용하니 이걸로 입력했다. 3. 프로젝트 생성 프로젝트 이름을 설정하고, Next 클릭 Finish 클릭 4. Configuration 창 그러면, STM32CubeMX 창이 나타나는데, 오늘은 필요 없으니 일단 패스한다. 5. print 출력 왼쪽에 Project Explorer -> 0_print_hello -> Core -> Src -> main.c 클릭한다. /* USER CODE BEGIN Inclu.. 2025. 9. 6.
[STM32] 2. Cortex 시리즈 정리 STM32뿐만 아니라 많은 MCU/MPU가 ARM Cortex 코어를 사용한다.Cortex는 ARM에서 만든 프로세서 코어 아키텍처 브랜드이고, 성능/전력/용도에 따라 여러 라인업이 있다. 대표적으로 Cortex-A/R/M 제품 라인업이 있다. 귀엽게도 라인 이름 조차 "ARM"으로 맞췄다. Cortex-M 시리즈 (Microcontroller) Cortex-M 시리즈는 STM32와 같은 마이크로컨트롤러(MCU)에 사용되는 가장 일반적인 코어이다. Cortex-A 시리즈와 달리, 복잡한 운영체제보다는 FreeRTOS와 같은 소형 RTOS나 베어메탈(Bare-metal) 환경에서 구동된다. 사용 편의성과 전력 효율성에 초점을 맞추어 설계되었으며, 마이크로컨트롤러의 주변 장치를 제어하는 데 최적화되어 있다.. 2025. 9. 4.
[STM32] 1. STM32 시리즈 STM32는 STMicroelectronics에서 만든 32비트 ARM Cortex-M 기반 MCU 시리즈이다. ARM Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33, 또는 Cortex-M55와 같은 32비트 ARM 프로세서 코어를 기반으로 다양한 시리즈로 분류된다. STM32 시리즈 4가지 카테고리로 분류된다.High-performance(고성능)MainstreamUltra-low-power(초저전력)Wireless(무선) 제품군을 간단히 살펴보면, STM32F (Foundation): 가장 오래되고 광범위한 제품군이다. Cortex-M0부터 Cortex-M7까지 다양한 코어를 사용하여 범용적인 애플리케이션에 적합하다. ST.. 2025. 9. 2.
[UVM] 0. Introduction UVM이란?UVM(Universal Verification Methodology)은 SystemVerilog 기반의 표준 검증 프레임워크로, 디지털 회로와 SoC 검증에 사용되며 반도체 업계의 사실상 표준으로 자리잡았다. UVM의 주요 목적은 모듈화, 재사용성, 표준화된 테스트벤치 환경 제공이다. 프레임워크(Framework)라는 단어가 중요한데, 프레임워크란 미리 정의된 구성 요소와 규칙이 있는 개발 틀을 의미한다. 이 틀을 따르면 서로 다른 환경에서도 동일한 방식으로 검증을 수행할 수 있어 재사용과 확장이 쉽다. UVM 주요 구성 요소UVM은 테스트벤치 구축을 위해 미리 정의된 다양한 클래스와 기능을 제공한다. Testbench ComponentsDriver, Monitor, Scoreboard,.. 2025. 8. 3.
API란 무엇인가? IT업계에서 자주 사용되는 API(Application Programming Interface)의 의미에 대해 나 나름대로 정리하려한다. API의 정의API란 Application Programming Interface의 약자이다. 한 문장으로 정의하면, 프로그램 사이의 통신을 위한 약속이다. ‘Interface’라는 단어에 집중하면 단순히 연결창구 정도로만 생각하기 쉬운데, API의 진짜 핵심은 ‘약속’이라는 개념에 있다. 약속에 대해 자판기로 비유를 한번 들어보자. 자판기에서 “콜라 버튼”을 누르면 콜라가 나온다.사용자는 자판기 내부가 어떻게 작동하는지 몰라도, 버튼을 누르는 방법(인터페이스)만 알면 된다. API도 마찬가지로, 내부 동작은 몰라도 정해진 방법대로 요청만 하면 결과를 얻을 수 있다. .. 2025. 7. 6.
마이그레이션, 컨버팅, 포팅 헷갈리는 용어 3가지 마이그레이션(Migration), 컨버팅(Converting), 포팅(Porting)을 정리해보려고 한다.마이그레이션(Migration)전체 시스템이나 데이터를 '이전 환경에서 새로운 환경으로 옮기는 것'을 의미한다. 일반적으로 더 나은 또는 다른 운영 체제, 하드웨어, 데이터베이스 등으로 옮겨가는 것을 말한다. 키워드는 '환경의 이전'이다. 예를 들어, 사내 서버에서 클라우드 환경으로 데이터 및 시스템을 옮기는 것.오래된 운영체제(예: 윈도우 7)에서 새로운 운영체제(예: 윈도우 11)로 업그레이드하며 데이터와 설정을 옮기는 것.휴대폰 데이터를 새로운 휴대폰으로 동기화하는 것.등이 있다.컨버팅(Converting) 같은 플랫폼 내에서 개발 언어만 변경하여 동일한 기능을 수행하도록.. 2025. 7. 5.
멤리스터(Memristor)란? Memristor   Memristor(멤리스터, Memory + Resistor)는 저항과 메모리 기능을 동시에 수행하는 소자이다.Memristor는 전압과 전류의 History를 기억하는 특성을 가진 수동 소자(Passive Device)이다.저항과 유사하지만, 이전에 흘렀던 전류의 크기와 방향에 따라 저항값이 변하며, 전원이 차단된 후에도 저항값이 유지되는 비휘발성(Non—volatile) 특성을 가진다. DRAM은 휘발성 소자인데 반해, Memristor는 비휘발성 소자여서 매우 강력한 장점이 있다.  우리가 아는 수동 소자는 현재까지는 저항(R), 인덕터(L), 커패시터(C)가 있지만, 미래에는 Memristor가 수동소자에 포함될지도 모르겠다.    Memristor의 기본 원리   금속-산화.. 2025. 3. 25.
SystemVerilog 학습 노트 집필 https://wikidocs.net/book/16958 SystemVerilog 학습노트## 소개 한국어로 쓰여진 SystemVerilog 자료가 부족한 국내 환경을 고려하여, 여러 교재와 강의를 참고해 책을 작성하였습니다. SystemVerilog는 **하…wikidocs.net 위키독스에서 SystemVerilog에 대해 공부한 내용을 공유합니다. 2025. 2. 18.
728x90
반응형