# STM32_DEMO **Repository Path**: One_Piece_Zhao/STM32_DEMO ## Basic Information - **Project Name**: STM32_DEMO - **Description**: 练手项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-09 - **Last Updated**: 2025-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32主从双机SPI通信测试(代码在SPI_DEMO.rar,点个star) [博客原文](https://blog.csdn.net/weixin_43746325/article/details/119545607) #### **实现功能:主从设备可以互相接收到对方的数据** **stm32f103c8t6主< —————>stm32f103c8t6从** **接线:** 主(SPI1) | 从(SPI1) ---|--- MOSI(PA7) | MOSI(PA7) MISO(PA6) | MISO(PA6) SPI_CLK(PA5) | SPI_CLK(PA5) SPI_NSS(PA8) | SPI_NSS(PA4) 连线是一一对应的,不能将MOSI接上MISO,且两个设备的配置参数速率、相位、极性、CRC和传输方向及位数要相同,**一定要共地**。 **测试效果**: ![f974679fd95c14e502c061078e55298](https://github.com/imagine90/STM32_DEMO/blob/2bb9ba5832fb334d2a6b9125431e949d67ca1f6f/f974679fd95c14e502c061078e55298.png) COM8是主设备接收到从设备的数据 COM4是从设备接收到主设备的数据 很明显的问题,主设备没能成功获取到从设备的数据,从设备接收到主设备的数据。 ### **问题分析:** 1、问题出现在主设备:主设备没接收或者没响应。 2、问题出现在从设备:从设备并没发送数据。 3、以上两个问题同时出现。 ### **排查问题**: 1、首先,我将主设备的MOSI连上自身主设备的MISO,测试结果,主设备是可以接收数据。排除了第一种可能。 2、在主从设备进行通信时,利用逻辑分析仪来检测MISO引脚,**没能检测到任何波形变化**。问题很可能就是从设备。 于是,我将从设备换成了STM32F429,主设备还是STM32F103C8,程序也一样。 **stm32f103c8t6主< —————>stm32f429IG从** **接线:** 主(SPI1) | 从(SPI2) ---|--- MOSI(PA7) | MOSI(PB15) MISO(PA6) | MISO(PB14) SPI_CLK(PA5) | SPI_CLKP(B13) SPI_NSS(PA8) | SPI_NSS(PB12) **效果**: ![](https://github.com/imagine90/STM32_DEMO/blob/643a01c2ee4ae6f22788e9f7cba27a5f38d35561/image.png) COM8是主设备接收到从设备的数据 COM1是从设备接收到主设备的数据 从串口输出结果可以看出,测试成功了。 为了能进一步验证我的猜测,于是我将STM32F1和STM32F4的主从模式调换,结果,和我的猜测是一样的,主设备(F4)没能成功接收从设备(F1)的发送的数据,但是,从设备却可以接收到数据。 ### **结论**: STM32F103当作为从机时,可以接收数据,但是发送不了数据或者出现数据移位的问题。 补充一点:以上两款单片机的主频是不一样,F4主频是180MHz,F1主频是72MHz。F4的APB2时钟频率90MHz,APB1时钟频率45MHz;F1的APB2时钟频率72MHz,APB1时钟频率36MHz。SPI1设备属于高速设备,隶属APB2总线;而SPI2属于低速设备,隶属APB1总线。因此在同样的设置参数下,以F1为例,SPI1作为主机时的SCLK时钟频率是72MHz/256=2812.5 KHz,SPI2则是36MHz/256=140.625 KHz。 以上是我一天测试的结果,结论还需要进一步论证,先记录到这里了。