参照野火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);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>