目录
[一、定时器 Timer](#一、定时器 Timer)
[二、通用同步异步收发器 USART(串口)](#二、通用同步异步收发器 USART(串口))
[三、ADC 模数转换器](#三、ADC 模数转换器)
[四、I2C 通信总线](#四、I2C 通信总线)
[五、SPI 通信总线](#五、SPI 通信总线)
[六、外部中断 EXTI](#六、外部中断 EXTI)
前言
上一篇讲解单片机底层硬件基础,本篇聚焦片上常用外设,是硬件实操、代码编写的核心内容,覆盖定时器、串口、ADC、I2C/SPI,新手开发高频使用模块。
一、定时器 Timer
- 核心作用:精准计时、延时、产生 PWM 波形、定时中断,单片机核心时序外设。
- 工作原理:依托系统时钟分频计数,计数器从 0 向上累加,到达设定值触发溢出事件。
- 三大基础模式
- 定时模式:固定时间产生中断,周期性执行任务
- 计数模式:统计外部引脚脉冲(测速、计数)
- PWM 输出模式:调节方波占空比,控制电机转速、LED 亮度
- 中断逻辑:定时时间到自动进入中断函数,无需 CPU 循环等待,节省算力。
二、通用同步异步收发器 USART(串口)
- 功能:单片机与电脑、传感器、模块双向数据通信,最简易调试接口。
- 关键参数:波特率、数据位、校验位、停止位,通信双方参数必须完全一致。
- 两种工作方式
- 查询模式:CPU 循环检测接收标志,占用 CPU 资源
- 中断模式:收到数据自动触发中断,实时响应,项目开发首选
- 常用场景:串口打印调试日志、蓝牙模块、GPS 模块通信。
三、ADC 模数转换器
- 作用:将外部连续变化的模拟电压转为单片机能识别的数字信号。
- 核心参数:分辨率(8/10/12 位),位数越高电压划分越精细,检测精度越高。
- 读取流程:开启 ADC 时钟→配置对应 GPIO 为模拟输入→启动转换→读取数字值→换算实际电压。
- 典型应用:电位器、温感、光敏电阻、电池电压检测。
四、I2C 通信总线
- 特点:两根信号线 SDA 数据、SCL 时钟,支持多设备挂载,硬件自带应答,布线简单。
- 通信逻辑:主设备控制时钟,从设备被动应答,支持读写寄存器。
- 适用器件:OLED 显示屏、EEPROM、温湿度传感器(AHT20/DHT11)。
- 限制:传输速率偏低,长距离通信易受干扰。
五、SPI 通信总线
- 特点:四线通信 SCK 时钟、MOSI 主机发、MISO 从机发、CS 片选,传输速度远高于 I2C。
- 优势:高速全双工传输,适合大数据交互。
- 适用器件:TFT 彩屏、Flash 存储、无线射频模块。
- 片选机制:多设备共用总线,单独拉低对应 CS 引脚选中目标设备。
六、外部中断 EXTI
- 功能:检测 GPIO 电平跳变(上升沿 / 下降沿 / 双边沿),触发中断立即执行对应代码。
- 使用场景:独立按键检测、外部传感器触发信号、外部设备唤醒单片机。
- 优势:无需轮询扫描引脚,CPU 空闲时可执行其他任务,实时响应外部信号。
七、外设使用通用流程
- 开启外设对应时钟(所有外设默认关闭时钟,节能)
- 配置对应 GPIO 引脚功能(复用功能 / 模拟输入)
- 设置外设工作参数(波特率、分频、分辨率、中断优先级)
- 开启中断(按需),编写中断服务函数
- 启动外设,正常收发 / 采集数据
