打印
[研电赛技术支持]

GD32 SPI的clock_polarity_phase设置详细分析

[复制链接]
1116|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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;




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 的定义会影响数据传输的起始边沿

使用特权

评论回复
5
观海| | 2025-6-6 22:29 | 只看该作者
CPHA 决定数据采样和输出的边沿

使用特权

评论回复
6
guanjiaer| | 2025-6-7 08:42 | 只看该作者
CPHA 确定主设备和从设备之间数据的同步方式

使用特权

评论回复
7
heimaojingzhang| | 2025-6-7 11:13 | 只看该作者
从设备的 SPI 时序文档会明确指定 CPOL 和 CPHA 的值

使用特权

评论回复
8
keaibukelian| | 2025-6-7 13:39 | 只看该作者
如果从设备的数据手册未明确说明,可以通过示波器观察其 SPI 通信波形,判断时钟空闲电平和数据采样边沿

使用特权

评论回复
9
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;


使用特权

评论回复
10
renzheshengui| | 2025-6-7 18:31 | 只看该作者
CPHA决定数据采样的边沿(第一个或第二个边沿)

使用特权

评论回复
11
wowu| | 2025-6-7 20:45 | 只看该作者
需根据从设备的 SPI 时序要求进行匹配,否则可能导致通信失败

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

170

帖子

0

粉丝