STM32 NVIC, 인터럽트 우선순위 완전 정복
·
TIL
"버튼 누르면 UART 수신이 씹혀요", "두 인터럽트가 동시에 터졌는데 어떻게 되나요?"NVIC를 모르면 반드시 겪는 문제들입니다. 1. 인터럽트가 뭔가요?CPU는 기본적으로 코드를 위에서 아래로 순서대로 실행합니다.그런데 현실에서는 "지금 당장" 처리해야 할 일이 생깁니다.버튼이 눌렸다UART로 데이터가 들어왔다타이머가 만료됐다이럴 때 CPU에게 "하던 일 잠깐 멈추고 이거 먼저 처리해"라고 신호를 보내는 것이 인터럽트 (Interrupt)입니다.일반 실행 흐름:main() ──────────────────────────────────────► [코드 A] [코드 B] [코드 C] [코드 D]인터럽트 발생 시:main() ──────────────┐ ┌──────────..
UART 통신, 제대로 이해하기
·
TIL
임베디드를 시작하면 가장 먼저 만나는 통신 프로토콜, UART. "그냥 시리얼 통신이잖아요"라고 넘기기기엔 아는 만큼 보이는 게 달라집니다. 1. UART가 뭔가요?UART는 Universal Asynchronous Receiver/Transmitter의 약자입니다.이름을 풀어보면 그 자체로 설명이 됩니다.단어의미Universal다양한 디바이스와 호환Asynchronous클럭 신호 없이 통신 (비동기)Receiver/Transmitter송신과 수신을 모두 담당 임베디드 개발을 하다 보면 UART를 가장 먼저, 가장 많이 만납니다. MCU와 PC를 연결해 디버깅 메시지를 출력하거나, 두 MCU끼리 데이터를 주고받을 때 쓰입니다.2. 직렬 vs 병렬 통신 UART를 이해하려면 먼저 직렬(Serial) 통신..