Peripheral ≠ pin
USART2 is a circuit inside the MCU. PA2 is a physical pad. AF7 connects one possible UART signal to that pad. D1 is a label on a board connector; board bridges determine the copper route.
Follow a signal from your C code, through the chip,
to the pin you can actually touch.
Functional 3D layout, not a mechanical drawing. Lines show logical routes, not PCB copper. USB is at the top.
Search the complete Morpho header map and the selected learning routes. Connector numbering is authoritative; the canvas is a functional layout.
| MCU pin / net | Board connection | Learning routes | Clock / caution |
|---|
A focused index of the registers used in these benches. Use RM0390 for the full register map.
See how one source becomes several bus clocks. These are calculated teaching profiles, not readings from your board.
TIM3 uses the APB1 timer clock. This calculator fixes a 1 MHz counter; the shown frequency includes integer rounding.
OVER8=0: the BRR value is approximately PCLK1 / baud. Clock error and divider error both affect the real link.
The ideas that make the registers less mysterious, and the next interfaces to explore.
USART2 is a circuit inside the MCU. PA2 is a physical pad. AF7 connects one possible UART signal to that pad. D1 is a label on a board connector; board bridges determine the copper route.
The GPIO clock lets you configure the pin. The peripheral clock lets the internal circuit operate. You commonly need both. SysTick, CRC and DMA show why some circuits need no signal pins.
GPIOA starts at 0x40020000. BSRR is offset 0x18. CMSIS gives that address a readable C name: GPIOA->BSRR. It names hardware; it does not secretly initialize it.
Use &= ~mask to clear a field, then |= value to set it. But command and status registers differ: BSRR is a write command; EXTI PR clears pending bits when you write 1.
These are architecture guides and next steps. They are not complete peripheral drivers.
Connect ground first and use voltage-compatible inputs. Capture a known pattern: UART “U” (0x55), SPI 0xA5, or a 1 kHz PWM. Sample at least 10× the fastest signal of interest as a practical starting point, then inspect the raw edges before trusting a decoder. A digital analyzer cannot measure analog voltage accurately; use a meter or oscilloscope for ADC/DAC.
Original teaching explanations and code; board mappings checked against UM1724 and DS10693, registers against RM0390 and ST CMSIS. Source checked with the real F446 CMSIS headers; no target linking or physical board testing. Simulated waveforms illustrate concepts and do not emulate the MCU. CDN assets require internet access.