天线|RF射频
直播中

宋瑞雪

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

NRF24L01_Init有问题如何解决

void NRF24L01_Init(void)

{

RCC->APB2ENR|=1<<2; //使能 PORTA 口时钟

RCC->APB2ENR|=1<<4; //使能 PORTC 口时钟

GPIOA->CRL&=0XFFF000FF;//A4 输出   不是A2.3.4输出吗?

GPIOA->CRL|=0X00033300;

GPIOA->ODR|=7<<2;    //PA2.3.4  输出 1   

GPIOC->CRL&=0XFF00FFFF;//PC4 输出  C5 输出  好像是复用推挽输出,是吗?那为什么不选择最大速度输出,而选择保留?

GPIOC->CRL|=0X00830000;

GPIOC->ODR|=3<<4;    //上拉

SPIx_Init(); //初始化 SPI

NRF24L01_CE=0;    //使能 24L01

NRF24L01_CSN=1;  //SPI 片选取消                 

}



回帖(19)

h1654155275.5889

2020-5-28 07:22:17
还有,为什么要用复用推挽输出?
举报

潘飘稚

2020-5-28 07:30:40

这里是推挽输出。。。

不是复用。

你可以设置其他速度,只要不低于SPI的速度即可。
举报

代攀

2020-5-28 07:42:30


原子,nrf24l01程序中的有点小bug啊。影响通信距离啊。(nrf24l01本来距离就不远,所以。)0x06那个寄存器设置的不是最大啊,建议改下。呵呵
举报

李超

2020-5-28 07:56:01

我们是设置的最大了吧?
举报

更多回帖

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