关于STM32的SPI问题集锦

来源:本站
导读:目前正在解读《关于STM32的SPI问题集锦》的相关信息,《关于STM32的SPI问题集锦》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《关于STM32的SPI问题集锦》的详细说明。
简介:关于STM32的SPI问题集锦关于STM32的SPI问题集锦

关于STM32的SPI问题集锦

1STM32F207使用SPI2收不到数据的问题

问:我使用STM32F207SPI2控制模数转换器AD977时,STM32F207处理器的SPI2工作在单向只接收模式(从模式)下,我的SPI2总是接收不到数据(但在SPI2_MOSI管脚上有数据,时钟也有,我用示波器看的),请帮我分析一下。我的SPI及管脚配置如下:

voidSPI2_Config(void)

{

//NVIC_InitTypeDefNVIC_InitStructure;

/*EnabletheSPIclock*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);

/*EnableGPIOclocks*/

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);

/*ConnectSPIpinstoAF5*/

//GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_SPI2);

//GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_SPI2);

//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;

//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;

//GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;

//GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN;

/*SPISCKpinconfiguration*/

//GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;

//GPIO_Init(GPIOB,&GPIO_InitStructure);

/*SPIMOSIpinconfiguration*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN;

//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;

GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;

//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;

//GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;

GPIO_Init(GPIOB,&GPIO_InitStructure);

/*SPIconfiguration-------------------------------------------------------*/

SPI_I2S_DeInit(SPI2);

SPI_Cmd(SPI2,DISABLE);

SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;

SPI_InitStructure.SPI_Mode=SPI_Mode_Slave;

SPI_InitStructure.SPI_DataSize=SPI_DataSize_16b;

SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;

SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;

SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;

SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;

SPI2->CR1=0<<8;

SPI_Init(SPI2,&SPI_InitStructure);

//SPI_TIModeCmd(SPI2,ENABLE);

SPI_Cmd(SPI2,ENABLE);

}

答:GPIO的模式改为GPIO_Mode_AF_PP

1、关于STM32SPI

问:SPI口,同步串行通信中的同步指的是什么?

答:同步,是指在通信过程中,被控制的对象与主机的时钟是相同的,都是由主机发出。

3STM32F10XSPI时序疑惑

问:这两天学习了STM32F10X系列的SPI模块,发现其时序问题,感到非常疑惑:通过CPOLCPHA两个位来控制收、发时序;根据时序图可以看出:发送、接收是在同一个时钟边沿采样!可是我接触过的所有使用SPI通信的外围芯片,发送和接受都是在不同的时钟边沿采样,这样的话,发送、接收肯定有一方采集到的数据存在错误的可能。目前正在调试开发板的SPI模块,和AT45DB161B通信,目前还没有成功,请高手指点!

答:SPI通讯的方式有3种、4线、3线、2线型。你使用的是那种情况?

答:4线全双工

答:你说的情况是不会发生的,这个你可以参考SPI4线的通讯方式。通讯不了,首先排除硬件问题,再次排除程序通讯问题。

4使用SPI外设时如何设定NSS为通用IO口?

答:主模式和从模式下均可以由软件或硬件进行NSS管理;将SPI_CR1寄存器的SSM位置为1时,NSS引脚将被释放出来用作GPIO口;使用STM32软件库时,初始化SPI外设时,使用如下代码:SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;如果NSS引脚用于其他外设时,需要使能NSS输出:SPI_SSOutputCmd(SPIx,ENABLE)

提醒:《关于STM32的SPI问题集锦》最后刷新时间 2024-03-14 01:12:59,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《关于STM32的SPI问题集锦》该内容的真实性请自行鉴别。