🔌
EMBEDDED C · 24 lessons
8051·STM32 register-level — no HAL, Keil μVision simulator
24 lessons of register-level embedded C with no HAL — SFR·CMSIS, GPIO·timer·interrupt·UART·ADC·PWM, plus debouncing·ring buffer·HAL abstraction·capstone. Verified with PC gcc and the μVision simulator.
🌱
Part 1: 기초 (공통 — PC gcc로 검증)
5 lessons
🌱
Lesson 01
임베디드 C와 Keil μVision 시작하기
임베디드 C, `while(1)` 골격, 빌드/디버그 흐름
임베디드 Cwhile(1) 골격빌드/디버그 흐름
→
🌱
Lesson 02
자료형·진수·stdint·sizeof
정확한 비트 폭, `uint8/16/32_t`
정확한 비트 폭uint8/16/32_t
→
🌱
Lesson 03
비트 연산과 레지스터 조작
set/clear/toggle, 마스크
set/clear/toggle마스크
→
🌱
Lesson 04
포인터·volatile·메모리 맵드 I/O
레지스터 = 주소, `volatile`
레지스터 = 주소volatile
→
🌱
Lesson 05
함수·헤더 분리·#define 매크로
모듈화, 헤더 가드
모듈화헤더 가드
→
🔧
Part 2: 8051 (Keil C51 / AT89C52)
7 lessons
🔧
Lesson 06
8051 구조·SFR·reg52.h
SFR, `sbit`/`sfr`
SFRsbit/sfr
→
🔧
Lesson 07
GPIO 출력 — LED 점멸
포트 출력, 액티브 로우
포트 출력액티브 로우
→
🔧
Lesson 08
GPIO 입력 — 버튼/스위치
준쌍방향 포트 입력
준쌍방향 포트입력
→
🔧
Lesson 09
타이머0/1 과 지연
하드웨어 타이머
하드웨어 타이머
→
🔧
Lesson 10
외부·타이머 인터럽트
`interrupt N`
interrupt N
→
🔧
Lesson 11
UART 시리얼 통신
직렬 송수신
직렬 송수신
→
🔧
Lesson 12
7세그먼트 표시 (멀티플렉싱)
룩업 테이블, 동적 구동
룩업 테이블동적 구동
→
⚙️
Part 3: STM32 (Keil MDK-ARM / STM32F103C8, 레지스터 직접 제어)
8 lessons
⚙️
Lesson 13
Cortex-M·CMSIS·클럭 트리
CMSIS, RCC, 클럭 트리
CMSISRCC클럭 트리
→
⚙️
Lesson 14
RCC·GPIO 레지스터로 LED
CRL/CRH, ODR/BSRR
CRL/CRHODR/BSRR
→
⚙️
Lesson 15
GPIO 입력·풀업/풀다운
IDR, 내부 풀업
IDR내부 풀업
→
⚙️
Lesson 16
SysTick 타이머와 정확한 지연
`SysTick_Config`, ms 틱
SysTick_Configms 틱
→
⚙️
Lesson 17
범용 타이머·PWM 출력
PSC/ARR/CCR, PWM
PSC/ARR/CCRPWM
→
⚙️
Lesson 18
NVIC 인터럽트와 EXTI
EXTI, 펜딩 클리어
EXTI펜딩 클리어
→
⚙️
Lesson 19
USART 시리얼 통신
BRR, TXE/RXNE
BRRTXE/RXNE
→
⚙️
Lesson 20
ADC 아날로그 입력
12비트 변환, 환산
12비트 변환환산
→
🚀
Part 4: 응용·패턴
4 lessons