1. 从零开始的嵌入式学习之路
2019年夏天,我拿着大专录取通知书站在校门口,看着"电子信息工程技术"的专业名称,心里既兴奋又忐忑。作为一个高考成绩刚过专科线的学生,我从未想过自己会走上技术这条路。更没想到的是,三年后我会成为一名嵌入式开发工程师,参与工业控制设备的研发。
记得第一节专业课上,老师问我们:"知道什么是嵌入式系统吗?"教室里鸦雀无声。当老师展示出一个小小的开发板,说这上面跑的就是嵌入式系统时,我完全无法理解——电脑不都是大大的机箱吗?这个巴掌大的板子怎么能叫计算机?
2. 初识STM32:我的第一个开发板
2.1 硬件入门:从认识元器件开始
大一下学期,我终于拥有了人生第一块开发板——STM32F103C8T6最小系统板,价格68元,是我省下两周午饭钱买的。拆开快递时,我的手都在发抖。板子上密密麻麻的元器件让我眼花缭乱:那个黑色长方体是主控芯片,银色的圆柱体是晶振,还有各种电阻电容...
老师教我们先用万用表测量各引脚电压。当我第一次看到3.3V的电压值稳定显示在万用表上时,突然有种"原来这就是电子世界"的顿悟。但紧接着就遇到了第一个难题:按照教程连接LED灯,灯就是不亮。排查半天才发现,我误将限流电阻接在了LED的阳极而非阴极。
新手常见误区:LED灯有正负极之分,长脚为正极(阳极),短脚为负极(阴极)。限流电阻应该串联在阳极回路中。
2.2 第一个"Hello World":点亮LED
经过多次失败,我终于成功写出了第一个嵌入式程序——用STM32点亮LED。这个看似简单的操作,包含了许多关键知识点:
c复制#include "stm32f10x.h"
void Delay(uint32_t nCount) {
for(; nCount != 0; nCount--);
}
int main(void) {
GPIO_InitTypeDef GPIO_InitStructure;
// 开启GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置PB5为推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStru
