[研电赛技术支持] GD32 SPI的clock_polarity_phase设置详细分析

[复制链接]
 楼主| Jiangxiaopi 发表于 2025-4-11 14:09 | 显示全部楼层 |阅读模式
spi_init_struct.trans_mode           = SPI_TRANSMODE_RECEIVEONLY;
spi_init_struct.device_mode          = SPI_MASTER;
spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_2EDGE;
spi_init_struct.nss                  = SPI_NSS_SOFT;
spi_init_struct.prescale             = SPI_PSC_64;      
spi_init_struct.endian               = SPI_ENDIAN_MSB;

7927567f770eec4f66.png


CLK平时是低,SPI_CK_PL_LOW
CLK是低的话,第一个边沿是上升沿,第二个边沿是下降沿,看MISO的数据每个bit的中心是,这里是下降沿,则应该设置为PH_2EDGE。
.clock_polarity_phase 的设置应该按照SPI从设备的实际要求和输出来决定
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/lljss1980/article/details/146277267

磨砂 发表于 2025-6-6 15:41 | 显示全部楼层
SPI 的 [size=0.875]clock_polarity_phase 用于配置 SPI 时钟的极性和相位
晓伍 发表于 2025-6-6 17:59 | 显示全部楼层
CPOL 决定 SPI 时钟在空闲状态时的电平
八层楼 发表于 2025-6-6 20:19 | 显示全部楼层
CPOL 的定义会影响数据传输的起始边沿
观海 发表于 2025-6-6 22:29 | 显示全部楼层
CPHA 决定数据采样和输出的边沿
guanjiaer 发表于 2025-6-7 08:42 | 显示全部楼层
CPHA 确定主设备和从设备之间数据的同步方式
heimaojingzhang 发表于 2025-6-7 11:13 | 显示全部楼层
从设备的 SPI 时序文档会明确指定 CPOL 和 CPHA 的值
keaibukelian 发表于 2025-6-7 13:39 | 显示全部楼层
如果从设备的数据手册未明确说明,可以通过示波器观察其 SPI 通信波形,判断时钟空闲电平和数据采样边沿
paotangsan 发表于 2025-6-7 15:52 | 显示全部楼层
// 示例:配置 SPI 为主模式,时钟极性低,相位第二个边沿
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_2EDGE;
spi_init_struct.frame_size = SPI_FRAMESIZE_8BIT;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init_struct.prescale = SPI_PSC_64;
spi_init_struct.endian = SPI_ENDIAN_MSB;


renzheshengui 发表于 2025-6-7 18:31 | 显示全部楼层
CPHA决定数据采样的边沿(第一个或第二个边沿)
wowu 发表于 2025-6-7 20:45 | 显示全部楼层
需根据从设备的 SPI 时序要求进行匹配,否则可能导致通信失败
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

221

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部