可能主要是初始化问题,分享一下我的初始化代码,供大家参考,有兴趣的可以加我的QQ(553953865)一起聊。
void SPI_Config(void)
{
/* Init I/O ports */
disableInterrupts();
GPIO_Init( SI4432SDN_GPIO_PORT, SI4432SDN_GPIO_PIN, GPIO_Mode_Out_PP_High_Slow ); // SDN PB2
GPIO_Init( SI4432nSEL_GPIO_PORT, SI4432nSEL_GPIO_PIN, GPIO_Mode_Out_PP_High_Slow ); // SDN PB4
GPIO_Init( SI4432SCLK_GPIO_PORT, SI4432SCLK_GPIO_PIN, GPIO_Mode_Out_PP_High_Fast ); // SCLK PB5
GPIO_Init( SI4432SDI_GPIO_PORT, SI4432SDI_GPIO_PIN, GPIO_Mode_In_FL_No_IT ); // SDI PB6
GPIO_Init( SI4432SDO_GPIO_PORT, SI4432SDO_GPIO_PIN, GPIO_Mode_Out_PP_High_Fast ); // SDO PB7
/* Init 时钟及配置 */
CLK->PCKENR1 |= 0x10; // 时钟允许
SPI_DeInit(SPI1);
SPI_Init(SPI1,SPI_FirstBit_MSB,SPI_BaudRatePrescaler_2,SPI_Mode_Master,SPI_CPOL_Low,SPI_CPHA_1Edge,SPI_Direction_1Line_Tx ,SPI_NSS_Soft,TRUE);
SPI1->CRCPR = 0x07;
SPI1->CR1 |= 0x40; // SPI 使能
enableInterrupts();
}
|