SYSCLK (System Clock) ystem Clock은 HSI 오실레이터, HSE 오실레이터, PLL로부터 얻을 수 있다. LSI/LSE Clock은 RTC나 Watchdog 등에 사용된다. 별도의 Clock을 설정하지 않으면, HSI(16MHz)가 System Clock source로 사용된다. 다음은 HSI를…
“UART를 예시로 STM32 HAL Program Flow를 알아보자.” CubeMx에서 UART2를 Asynchronous로 설정하고 프로젝트를 생성한다. 우리는 바닥에서부터 프로그램을 작성할 것이기 때문에, 생성된 프로젝트의 Src 폴더에서 ‘msp.c’와 ‘it.c’ 를 delete하고 새로 만든다. 그리고…
STM32 Cube 프로젝트 아키텍쳐의 개요 HAL layer는 다양한 peripheral들에 대한 APIs를 제공한다. CMSIS-Core layer는 Processor 내부의 peripheral register에 접근할 수 있는 APIs를 제공한다. (NVIC, SysTick, MPU, SCB) HAL driver를 사용하는…
UART UART와 USART UART는 Asynchronous mode만 지원하고, USART는 Asynchronous mode와 Synchronous mode 모두를 지원한다. Synchronous transmission의 경우에 Clock은 data stream과 분리되어 있고, Start/Stop bit는 사용되지 않는다. Asynchronous transmission의 경우에 Clock은…
I2C I2C Introduction I2C는 SPI 보다 상당히 복잡한 통신 프로토콜이다. I2C의 Specification은 NXP에서 디자인하였다. (global spec) SPI는 Spec이 각각 따로 논다. I2C는 multi-master 가능하다. SPI는 multi-master에 대한 guide line이 없어서,…
SPI (Serial Peripheral Interface) SPI (Serial Peripheral Interface) Maximum speed, typical use, maximum distance of various communication protocols 거리가 가까운 주변장치들(MCU<->Flash memory, Display, SRAM, etc.)과 통신할 때는 SPI/I2C를 사용하지만 거리가…
GPIO GPIO에 대하여 1. GPIO MODE register의 Reset Value 2. GPIO가 Input 모드일 때는 Output driver가 Off이지만, Output 모드일 때는 Input Driver가 On이므로, 출력값을 다시 읽을 수 있다. 3. GPIO…