TI中文支持网
TI专业的中文技术问题搜集分享网站

28335与STM32F407进行SPI通信的问题

28335作为主机,STM32F407作为从机,主机发送从机接收。28335使用McBSP的SPI模式,发送端应该没有问题;STM32F407接收数据时总是接收一半,另一半为零,而且一次接收完毕后STM32F407的状态寄存器会显示溢出错误。请问是什么原因?

STM32F407SPI配置程序如下:

GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef SPI_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); 
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); 
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE); 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3; 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; 
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOC, &GPIO_InitStructure); 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; 
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; 
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_SPI2); 
GPIO_PinAFConfig(GPIOC,GPIO_PinSource2,GPIO_AF_SPI2); 
GPIO_PinAFConfig(GPIOC,GPIO_PinSource3,GPIO_AF_SPI2); 

RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,ENABLE); 
RCC_APB1PeriphResetCmd(RCC_APB1Periph_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_NSS = SPI_NSS_Soft; 
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; 
SPI_InitStructure.SPI_CRCPolynomial = 7; 
SPI_Init(SPI1, &SPI_InitStructure); 
//SPI2->CR1&=0XDFC7;
SPI_Cmd(SPI2, ENABLE); 

将STM32F407的数据寄存器赋值到数组rdata,接收到值如下图所示:

Shine:

28335属于C2000系列,有专门的C2000论坛可以咨询。
e2echina.ti.com/…/

赞(0)
未经允许不得转载:TI中文支持网 » 28335与STM32F407进行SPI通信的问题
分享到: 更多 (0)