STM32
直播中

刘杰

8年用户 1390经验值
私信 关注
[问答]

关于SMT32F103 Usart3同步模式与SPI1的通信问题求解

本人使用一颗STM32F103的usart3同步模式与其SPI1进行通信,当CPOL+CPHA的配置为00、01、10、11时,出现一些异常现象:
00、01、10配置:TX上发数据时,CK无时钟发出,与SPI1通信失败。
11配置时:与SPI1通信正常。

是不是大家一般都使用CPOL+CPHA=11配置? CPOL+CPHA其他配置是本来就不可用吗?哪位大神可以指点一下,非常感谢!


回帖(1)

赵敏

2024-4-19 16:00:30
在SPI通信中,CPOL和CPHA参数决定了时钟的极性和相位。CPOL表示时钟在空闲状态时的电平,CPHA表示数据采样的时机。

在STM32F103中,USART口和SPI口有些许不同,USART口的信号由CPOL = 0,CPHA=0方式传输,而SPI口则由CPOL = 1,CPHA=0方式传输。因此,一般来说,在与SPI口进行通信时,通常使用的是CPOL=1,CPHA=1方式,即传输时钟信号在空闲状态为高电平,数据采样在时钟的上升沿进行。

在CPOL+CPHA=00、01或者10时,可能会出现异常现象是因为该参数配置下无法正常与SPI通信模式匹配,因此通信会失败。只有当CPOL+CPHA=11时,其与SPI通信模式匹配,才能正常进行通信。

因此,一般来说,使用CPOL+CPHA=11的配置是比较常见的,也是比较稳定和可靠的配置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分