stm32的两个spi互相通信,从spi正确接收主spi数据,但主spi收不到从spi数据(MISO一直为低),是何原因?

PA6接PB14,PA7接PB15,全双工,将数据送从spi数据寄存器,然后主spi发送数据后返回主spi接收的数据,为0,不是从spi的数据,但从spi能正确接收主spi的数据,望大虾们指点小弟~不胜感激!

第1个回答  2012-07-27
你检查下gpio口是否配对追问

都为AF_PP,50MHz?应该没错的吧,还有什么别的可能错的地方吗?——谢谢!

追答

请检查下你片选拉低了吗?你的MASTER 发送字节以保持时钟了吗?

本回答被提问者采纳

stm32的spi通信问题:程序在前面都没问题,但到了发送接收的while里面就...
还有一点:STM32先等待已发送的数据是否发送完成,如果没有发送完成,并且进入循环的话,说明数据发送错误,所以你这个地方顺序也有问题。应该是:while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); \/\/检查指定的SPI标志位设置与否:发送缓存空标志位 SPI_I2S_SendData(SPI1, 0x54)...

STM32SPI通信仿真没问题,下载后不能接收
1.设置SPE位为1,使能SPI模块。2.在SPI_DR寄存器中写入第一个要发送的数据,这个操作会清除TXE标志。4.等待RXNE=1,然后接收最后一个数据。等待TXE=1,然后写入第二个要发送的数据。等待RXNE=1,然后读出SPI_DR寄存器并获得第一个接收到的数据,读SPI_DR的同时清除了RXNE位。重复这些操作,发送后续...

2个stm32怎么用spi通信
1、一个设置为主机模式,一个设置为丛机模式 2、将mosi、miso、nss、clk对应的连接起来就是了 3、波特率设置一样 4、配置spi,下面以配置SPI1主机模式为例如:SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;\/\/双线双向全双工 SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;...

STM32f10x系列 通过SPI2访问EEPROM,对应PB13\/14\/15是SCK,MISO,MOSI,PB...
STM32f10x系列通过SPI2访问EEPROM,对应PB13\/14\/15是SCK,MISO,MOSI,PB12是片选,想通过GPIO模拟片选,PB12配置成模式:outputpush-poll。拉高PB12后再拉低PB12导致STM32挂死,这是什... STM32f10x系列 通过SPI2访问EEPROM,对应PB13\/14\/15是SCK,MISO,MOSI,PB12是片选,想通过GPIO模拟片选,PB12配置成模式:output...

stm32如何实现多台SPI通信
在实现STM32的多台SPI通信时,有几个关键点需要特别注意:1. 分频值的设定:SPI接口的最大频率为18MHz。SPI1基于72MHz的APB2时钟,而SPI2基于36MHz的APB1时钟。如果系统时钟为72MHz,SPI1的分频值应为4,SPI2的分频值应为2。2. DMA开启顺序:网上的某些资料建议先开启从机发送,然后主机发送,...

STM32单片机SPI问题
● MOSI:主设备输出\/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。● SCK:串口时钟,作为主设备的输出,从设备的输入 ●NSS:从设备选择。这是一个可选的引脚,用来选择主\/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从...

请教STM32的SPI通信中的CRC校验问题 SPI
你这个是以查询的方式接收数据。 这个函数是坚持SPI_DR是否为空,新状态为置位 spi配置的时候,注意几点: 1:主从模式一致。从模式服从主模式,不要主SPI是一种配置,从模式是另外一个配置; 2:主机启动时钟前,从机应该已经开机了,使能了 3 ...

stm32如何实现多台SPI通信
用DMA的SPI双机通信中几个很容易出错的点:1)分频值:SPI的频率最高为18M,SPI1是在频率为72M的APB2上,而SPI2是在频率为36M的APB1上。如果芯片时钟频率为72M,那么SPI1的分频值为4,SPI2的分频值为2.2)开DMA顺序:我在网上看到有人说要先开从机发送、再开主机发送、再开从机接收、最后开...

STM32十多年未修的BUG
STM32中SPI通讯的时钟信号问题困扰了我多年,一个看似不起眼的BUG困扰了我十多年。原本以为配置SPI为半双工模式,只需正确设置BIDIOE位即可实现数据的收发,但实际操作中却遇到了令人费解的异常。手册中提到,在半双工模式下,MOSI线负责数据传输,通过BIDIOE控制传输方向。但在切换到接收模式时,必须有...

STM32的SPI设备接线问题,目前我写了一个SPI的程序,简单发送接收,我想...
SPI总线为四根线,为MISO,MOSI,SCK,NSS,但在实际应用中可减少。就比如你的情况,但是最少需要两个线,SCK是必须的,另一根为MOSI其为主机输出,从机输入。

相似回答