전체 글89 TIMER [1] ※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다. 오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다. 아래 글은 STM32F429ZI datasheet와 Reference manual를 기준으로 작성되었습니다. (임베디드 개발자에게 datasheet와 Reference manual을 지도와 나침판과 다름없이 존재) 해당 글에서는 STM32 TIMER 제어용 레지스터와 HAL_DRIVER 함수를 정리하고자 한다.STM32 타이머는 다양한 기능들은 내장하고 있다. 대표적으로기본 타이머 또는 카운터 , PWM, Compare out , input Capture 등을 지원한다.이번 포스트는 기본 타이머 또는 카운터에 대해 설명한다. HAL_D.. 2024. 5. 9. GPIO(3) 입력 제어 ※ 해당 글은 개인 공부 기록을 남겨놓는 것이 목적임으로 오류가 발생할수 있습니다. 오류 또는 업데이트된 사항이 있다면 댓글로 알려주시면 감사하겠습니다. 아래 글은 STM32F429ZI datasheet와 Reference manual를 기준으로 작성되었습니다. (임베디드 개발자에게 datasheet와 Reference manual을 지도와 나침판과 다름없이 존재) 해당 글에서는 stm32 GPIO 출력 제어용 레지스터와 HAL_DRIVER 함수를 정리하고자 한다. 입력 레지스터 제어 전 먼저 설정해야 할 것이 있다.- 레지스터 핀 모드 설정 -> GPIOx_MODER- 타입(풀다운 또는 풀업) -> GPIOx_PUPDR 1.PIO 입력 제어 레지스터 1). GPIOx_MODER -.. 2024. 5. 9. UART (Polling, Interrupt , DMA) [HAL-DRIVER 이용] 이번 글은 stm32cubeide에서 printf문과 scanf문 사용 방법과 float, double 실수 변수 사용 방법, uart 실제 구동 코드를 정리하고자 한다. 사용 TOOL : stm32CUBEIDE보드명 : stm32f411re nucleo board (HCLK MAX : 100HZ) 1. printf문 1) 표준 입출력 헤더파일 선언 2) 아래 __io_putchar 또는 _write 함수를 정의한다. (1) __io_putchar /* Private user code ---------------------------------------------------------*//* USER CODE BEGIN 0 */int __io_putchar(int ch){ HAL_UART_Tra.. 2024. 5. 8. volatile 지시자 C언어 컴파일러 지시자 중에 'volatile' 지시자에 대해 포스팅한다. MCU FW 프로그래밍을 하다 보면 레지스터를 제어하기 위해 같은 주소에 여러번 값을 여러번 쓰는 경우가 빈번하고, 앞에 volatile 키워드를 사용하는 경우를 볼 수 있다. ※사용법 원형 : volatile [type] [variable_name];ex) *(volatile unsigned int *)0x8CFF = 0x8001, volatile int num1; 아래와 같은 상황들에서 volatile을 제대로 사용하지 않아서 문제 발생 가능성이 있다. 컴파일화 최적화를 사용하지 않으면 제대로 동작하는 코드가 최적화만 사용 시 인터럽트를 사용하지 않으면 잘 동작하는 코드가 인터럽트 사용시메모리 주소를 가진 I/O 레지스터.. 2024. 5. 8. 이전 1 ··· 17 18 19 20 21 22 23 다음