【转】2.4G模块NRF24L01调试经验

2019-07-19 14:13发布

参照野火STM32程序调试NRF24L01成功,颇获喜感nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurstTM模式控制器、功率放大器、警惕振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI接口进行设置。模块外形图如下图所示:                 PCB和引脚示意图如下图所示:         
电路图如图所示:

VDD电压范围为1.9V~3.6V,我使用的是3.3V,与单片机的通信接口类型为SPI,读写时序如下图所示:
与开发板硬件连接如下:
* 硬件连接:----------------------------—----|
            |  PA5-SPI1-SCK     : NRF -SCK  |
            |   PA6-SPI1-MISO  : NRF -MISO |
            |   PA7-SPI1-MOSI  : NRF -MOSI |
            |   PA4         : NRF -CE     |
*          |   PA3                       : NRF -CSN  |
            |  PA2          : NRF -IRQ    |
*           -------------------------------------------
引脚配置如下:
[objc] view plain copy


  • /*配置 SPI_NRF_SPI的 SCK,MISO,MOSI引脚,GPIOA^5,GPIOA^6,GPIOA^7 */  
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;  
  • GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用功能  
  • GPIO_Init(GPIOA, &GPIO_InitStructure);   
  •   
  • /*配置SPI_NRF_SPI的CE引脚,GPIOA^4和SPI_NRF_SPI的 CSN 引脚: NSS GPIOC^4*/  
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;  
  • GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  • GPIO_Init(GPIOA, &GPIO_InitStructure);  
  •   
  • /*配置SPI_NRF_SPI的IRQ引脚,GPIOA^2*/  
  • GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
  • GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  
  • GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;  //上拉输入  
  • GPIO_Init(GPIOA, &GPIO_InitStructure);   

SPI配置如下:

[objc] view plain copy


  • SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;    //双线全双工  
  • SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                   //主模式  
  • SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;           //数据大小8位  
  • SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;              //时钟极性,空闲时为低  
  • SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;                //第1个边沿有效,上升沿为采样时刻  
  • SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;               //NSS信号由软件产生  
  • 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);  




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。