天线|RF射频
直播中

王若鸿

7年用户 221经验值
私信 关注
[问答]

STM32CBT6一直检测不到NRF2401的原因是什么?

void SPIx_Init(void)

{



GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOA|RCC_APB2Periph_SPI1, ENABLE );



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //???????ì????

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);



GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);



SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //?è??SPI???ò?ò?????ò??????????:SPI?è???????????ò?????¤

SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                //?è??SPI?¤×÷????:?è?????÷SPI

SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                //?è??SPI???????ó??:SPI·???????8?????á??

SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;                //???????®???±????????:?±???ü????????

SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;        //?????????????????±????

SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                //NSS???????????¨NSS?????©?????í???¨????SSI???©???í:????NSS??????SSI??????

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;                //?¨???¨?????¤·???????:?¨?????¤·???????256

SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;        //???¨??????????MSB??????LSB??????:??????????MSB??????

SPI_InitStructure.SPI_CRCPolynomial = 7;        //CRC?????????à????

SPI_Init(SPI1, &SPI_InitStructure);  //?ù??SPI_InitStruct?????¨???????????????èSPIx?????÷



SPI_Cmd(SPI1, ENABLE); //????SPI???è



SPIx_ReadWriteByte(0xff);//????????

}   



void NRF24L01_Init(void)

{

GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE );



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                                 //PA4-->NRF2401_CSN

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //???ì????

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_SetBits(GPIOA,GPIO_Pin_4);



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                                 //PB0-->NRF2401_CE

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //???ì????

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_SetBits(GPIOB,GPIO_Pin_0);



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;                                 //PB1-->NRF2401_IRQ

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  //????????

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         

   GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_SetBits(GPIOB,GPIO_Pin_1);



SPIx_Init();    //??????SPI



Clr_NRF24L01_CE;         //NRF24L01???????ú????  NRF24L01_CE

Set_NRF24L01_CSN;    //SPI???? NRF24L01_CSN                           

}



贴上两个初始化的函数,不知道问题在哪,还请指教

回帖(1)

陈妙宙

2020-5-6 10:45:51
你硬件没接错吧?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分