嵌入式圈的开箱仪式是点灯:十几块钱的开发板,一根下载器,烧个程序让 LED 闪起来。写惯了网页代码的朋友第一次拿到板子,别被密密麻麻的引脚吓住,跑通这一步,编译、烧录、跑时序的整套流程就串起来了。
单片机跟电脑差在哪
资源小到夸张:常见型号 RAM 几 KB 到几百 KB,主频几十 MHz,没有操作系统照样跑。单片机编程写的代码直接和寄存器、引脚打交道,一个变量用 int 还是 uint8_t 都得掂量,RAM 是按字节省着用的。
选个型号,装个软件
入门两条常见路线。经典 51 单片机(STC89C52 这类),用 Keil C51 开发,寄存器少,适合先搞懂原理;STM32 系列(比如 STM32F103C8T6,圈里叫蓝药丸的那块小板),用 Keil MDK 或 STM32CubeIDE,配 ST-Link 下载器,库函数生态成熟,实际工作里用得多。多数人的建议是直接上 STM32,51 的原理以后回头补也来得及。预算有限先买板子和下载器,二手平台上蓝药丸加 ST-Link 的套装一般几十块就能拿下。
点灯代码长什么样
用 HAL 库的话,核心就一行:
while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); HAL_Delay(500); }真功夫在代码之外:CubeMX 里把 PA5 引脚配成输出、时钟树配好,生成的工程才有这几行能跑。外设配错轻则程序不动,重则伤板子。嵌入式开发一大半时间花在配外设、查手册上,不是敲代码。
点灯之后练什么
- 串口收发:把 printf 重定向到串口,调试从此不用靠猜
- 定时器:精确延时,PWM 做呼吸灯、控舵机,输入捕获测频率也是它
- I2C 和 SPI 总线:接 SHT30 温湿度、OLED 屏这类常见模块,把传感器数据读出来
单片机编程这条路,先把库函数版跑通、找到手感,再回头看寄存器怎么配,比一上来啃几百页手册顺利得多。调不出来的时候,先量电压、看串口日志,别急着改代码。