初始化部分:
CLK_PeripheralClockConfig(CLK_Peripheral_SPI1, ENABLE);
GPIO_Init(GPIOB, GPIO_Pin_4, GPIO_Mode_Out_PP_High_Slow); //NSS
GPIO_Init(GPIOB, GPIO_Pin_5, GPIO_Mode_Out_PP_High_Slow); //SCK
GPIO_Init(GPIOB, GPIO_Pin_6, GPIO_Mode_Out_PP_High_Slow); //SDO
GPIO_Init(GPIOB, GPIO_Pin_7, GPIO_Mode_In_PU_No_IT); //SDI
SPI_Init(SPI1, SPI_FirstBit_MSB, SPI_BaudRatePrescaler_16, SPI_Mode_Master,
SPI_CPOL_High, SPI_CPHA_2Edge, SPI_Direction_2Lines_FullDuplex,
SPI_NSS_Soft, 0x07);
SPI_Cmd(SPI1, ENABLE);
复制代码
主函数测试部分:
GPIO_WriteBit(GPIOC, GPIO_Pin_5, 0);
while(!SPI_GetFlagStatus(SPI1, SPI_FLAG_TXE));
SPI_SendData(SPI1, 0x80);
for(u16Temp = 0; u16Temp < 100; u16Temp++)
{
;
}
while(!SPI_GetFlagStatus(SPI1, SPI_FLAG_RXNE));
u8RecData = SPI_ReceiveData(SPI1);
复制代码
在接收部分完成的时候打的断点,无论怎么做,都无法改变u8RecData的值 |