SPI 的时钟极性和时钟相位到底是什么?一张表讲清四种模式 📅 2026/7/9 18:41:34 tags: SPI,嵌入式,通信协议,CPOL,CPHA,时序 category: 嵌入式 type: original series: peripheral-practiceSPI 的时钟极性和时钟相位到底是什么一张表讲清四种模式一句话: CPOL 决定时钟线空闲时是高还是低CPHA 决定数据在第几个边沿被采样。两个 bit 排列组合出 4 种 SPI 模式——搞反一个收发数据全乱。系列文章《嵌入式外设实战》 — NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通 附完整代码 用文件柜抽屉讲透 用分和元讲透附代码 省引脚绝招 ✅ 一张表讲清四种模式 多一根线差多远 电压不同的区别[TOC]适合谁读适合嵌入式开发者、单片机初学者及遇到类似问题的工程师CPOL时钟线闲着的时候是高还是低CPOL 0空闲时 SCK 低电平 CPOL 1空闲时 SCK 高电平只能在空闲状态看。工作状态时 SCK 线上下跳变看不出极性。画成图CPOL0: SCK: ___/‾‾‾\___/‾‾‾\___ CPOL1: SCK: ‾‾‾\___/‾‾‾\___/‾‾‾片选线CS拉高 空闲。拉低 开始工作。CPHA数据在第几个边沿被采样CPHA 0数据在 SCK 的第 1 个边沿被采样上升沿读取 CPHA 1数据在 SCK 的第 2 个边沿被采样下降沿读取只能在 CS 拉低后的工作状态看。空闲状态数据线是静止的。用一个时钟周期来解释SCK 周期: _____/‾‾‾‾‾\_____ 边沿编号: ①上升 ②下降 CPHA0: 在边沿①上升沿采样数据 CPHA1: 在边沿②下降沿采样数据四种工作模式模式CPOLCPHA空闲 SCK采样边沿模式 000低电平第1边沿上升沿模式 101低电平第2边沿下降沿模式 210高电平第1边沿下降沿模式 311高电平第2边沿上升沿模式 0 和模式 3 最常见。大多数 SPI Flash 和 ADC 芯片用模式 0。怎么看芯片用哪种模式翻数据手册的 SPI 时序图找 CS 拉高时的 SCK 电平 → 确定 CPOL找 CS 拉低后第一个数据采样箭头 → 在第几个边沿 → 确定 CPHA// 模式 0 配置最常见 SPI_Init(CPOL_LOW, CPHA_FIRST_EDGE); // 模式 3 配置 SPI_Init(CPOL_HIGH, CPHA_SECOND_EDGE);配错了会怎样配错项现象CPOL 反了空闲电平不对有的芯片直接不认CPHA 反了数据偏移半个时钟周期读到全是乱码模式整个反了通信完全不工作逻辑分析仪一看波形全错排错顺序先用示波器看空闲 SCK 电平 → 确定 CPOL → 再看数据采样沿 → 确定 CPHA。总结参数看什么什么时候看CPOLSCK 电平CS 拉高空闲时CPHA数据被采样的边沿CS 拉低工作时两个 bit 的事但配错一个就全不通。拿到新芯片先翻数据手册的 SPI 时序图别猜。 点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通 点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通 点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通 点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通 点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通 点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通有用的话点个收藏下次调试直接用。有问题欢迎评论区交流看到了都会回。下一篇《附完整代码》——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通