2026/10/25 1:45:45
网站建设
项目流程
1、先说:为什么 STM32 可以做硬件 I2C / 硬件 SPI
芯片内部专门做了一套硬件外设模块(控制器),不是 CPU 靠软件循环翻转 IO。
- SPI 外设内部:移位寄存器 + 时钟发生器。只要你写几个寄存器配置好,硬件自动输出 SCK 时钟、自动移位发送 MOSI、采样 MISO。CPU 只要把数据丢进寄存器,然后等完成就行,CPU 不用去每一位操作引脚。
- I2C 外设内部:同样内置时序电路、起始 / 停止、ACK 应答逻辑。硬件自动生成 SCL 时钟,处理总线握手。
2、单总线(1-Wire,典型 DS18B20)
✅绝大多数 STM32 没有内置硬件 1-Wire 外设!所以没有硬件控制器,只能软件模拟。
![]()
一、I2C 硬件 vs 软件 代码对比(HAL 库 STM32)
(1)硬件 I2C(CubeMX 开启 I2C1,PB6 PB7 复用开漏)
![]()