SPI_Direction_2Lines_RxOnly
stm32H7spi主模式设置SPI_Direction_2Lines_RxOnly ,没有SCK输出,不知道是为什么大家给支个招 H7系列用的是新版SPI寄存器,可能和F1那种宏定义不太一样,最好用CubeMX配置看看。 主模式下即使是只接收,也必须先发送数据才能产生SCK时钟,不发数据SCK就不动。 如果你设置的是主机接收,记得调用HAL_SPI_TransmitReceive或者dummy写入触发时钟。 SPI主模式的RxOnly一般用于从设备持续输出的场景,这种用法比较少见,建议改成全双工。 你可以先用普通2线全双工模式试一下,确认SCK能出来,再调RxOnly模式。 STM32H7的SPI配置建议用LL库,自己控制更灵活,尤其是主模式时序要求。 有些时候是IO配置的问题,检查一下SCK引脚是不是漏配置成AF模式。 你试试用TIM2的ETR功能,频率计数完美适配,就是别忘了打开ETR滤波器和极性配置。 我之前碰到类似的情况,最后是因为没enable SPI时钟,检查RCC和GPIO部分的初始化。 你可以抓个波形看一下MOSI有没有变化,确认SPI有没有真正启动,排除空跑的问题。 直接用CubeMX配置,或者去官网找找看有木有例程。 仅接收模式的设计初衷就是只接收数据而不主动发送时钟信号。 检查硬件连接和时钟配置。 常规SPI通信应使用全双工模式,主机主动驱动时钟。 在 STM32H7 的硬件架构下,SPI 主设备必须发起“发送”动作,才能输出 SCK。即使你只关心接收,对主机而言也得先“驱动一次传输”。
页:
[1]