学前班
最后登录1970-1-1
在线时间 小时
注册时间2016-2-29
|
小弟调nrf240l01一对一通讯,使用SPI1时在引脚不重映射的情况下是可以正常使用的,但是把SPI1引脚重映射后就单片机无法和2401连接,请问可能是程序哪部分出了问题?请各位大神给点意见,跪谢~
void SPI_NRF_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SPI1, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable , ENABLE);
/*ÅäÖà SPI_NRF_SPIμÄ SCK,MISO,MOSIòy½Å£¬GPIOA^5,GPIOA^6,GPIOA^7 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //¸′óÃ1|Äü
GPIO_Init(GPIOB, &GPIO_InitStructure);
/*ÅäÖÃSPI_NRF_SPIμÄCEòy½Å£¬oíSPI_NRF_SPIμÄ CSN òy½Å:*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
/*ÅäÖÃSPI_NRF_SPIμÄIRQòy½Å£¬*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; //éÏà-êäèë
GPIO_Init(GPIOB, &GPIO_InitStructure);
/* ÕaêÇ×Ô¶¨òåμÄo꣬óÃóúà-¸ßcsnòy½Å£¬NRF½øèë¿ÕÏD×′ì¬ */
NRF_CSN_HIGH();
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //Ë«Ïßè«Ë«1¤
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //Ö÷Ä£ê½
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //êy¾Y′óD¡8λ
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //ê±Öó¼«DÔ£¬¿ÕÏDê±Îaμí
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //μú1¸ö±ßÑØóDD§£¬éÏéyÑØÎa2éÑù걿ì
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSSDÅoÅóéèí¼t2úéú
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; //8·ÖÆμ£¬9MHz
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //¸ßλÔúǰ
SPI_InitStructure.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStructure);
/* Enable SPI1 */
SPI_Cmd(SPI1, ENABLE);
}
|
|