An internal RC oscillator (HSI on STM32) is built into the chip, no external components, fast startup, and it's free, but it's imprecise, typically around ±1% with additional drift over temperature and voltage. An external crystal (HSE) is a quartz resonator outside the chip with its load capacitors; it's far more accurate and stable (parts-per-million), but it costs board space and money, needs correct layout, and takes longer to start up. You use the internal RC when timing accuracy doesn't matter much, basic GPIO, simple control loops, getting started quickly, and you use a crystal when you need precise, stable timing: USB (which has tight clock-tolerance requirements the RC can't meet), accurate UART baud rates at high speed, precise RF or sampling timing, or a real-time clock that mustn't drift. Many designs boot on the internal RC for reliability and switch to the crystal-driven PLL once running. The decision is an accuracy-vs-cost/complexity tradeoff driven by what your peripherals demand.
Embedded Systems Fundamentals · Interview question
What's the difference between an internal RC oscillator and an external crystal, and when do you use each?
A strong answer
What a weak answer sounds like
You know the answer. Do you know what gets you dinged?
Pro breaks down the answer most candidates actually give to this question — and the specific reason an interviewer marks it down. It’s the difference between sounding correct and sounding senior, on all 472 questions.
From the lesson
Clocks & the Clock Tree
The MCU's heartbeat: internal RC vs external crystal vs PLL, and the clock tree that feeds the core and every peripheral, plus the flash-wait-state trap that hangs chips.