#include "RF24L01.h"
#include "delay.h"u16 RTD_wait = 0; //发送等待时间设限u8 RTD_success = 0;u8 RX_BUF[RX_PLOAD_WIDTH]={0}; //接收数据缓存u8 TX_BUF[TX_PLOAD_WIDTH]={0}; //发射数据缓存u8 TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}; // 定义一个静态发送地址u8 RX_ADDRESS[RX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01};void Delay(__IO u32 nCount)
{for(; nCount != 0; nCount--);
} /*** @brief SPI的 I/O配置* @param 无* @retval 无*/
void SPI_NRF_Init(void)
{SPI_InitTypeDef SPI_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/*开启相应IO端口的时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);/*使能SPI1时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);/*配置 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引脚,和SPI_NRF_SPI的 CSN 引脚*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;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_2;GPIO_Init(GPIOB, &GPIO_InitStructure);/*配置SPI_NRF_SPI的IRQ引脚*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; //上拉输入GPIO_Init(GPIOB, &GPIO_InitStructure); /* 这是自定义的宏,用于拉高csn引脚,NRF进入空闲状态 */NRF_CSN_HIGH(); SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //双线全双工SPI_InitStructure.SPI_Mode = SPI_Mod
详细解决方案
nrf24l01(程序)
热度:23 发布时间:2024-01-06 07:16:28.0
相关解决方案
- NRF2401 NRF24L01 NRF905 CC1100 CC2500无线收发模块应用指南,该怎么处理
- nrf24l01 3.6v,该怎么处理
- nrf24l01 3.6v,该如何处理
- nrf24l01 3.6v解决思路
- nRF24L01 无线数传模块之间的区别 干货分析
- 【玩具】迷你无线遥控手柄 ( Arduino NANO + nRF24L01)
- 【101】使用 nRF24L01 射频模块操控舵机云台
- nRF24L01+不能接收或接收偶尔异常等问题实战分享
- nrf24l01(程序)
- nRF24L01+ 数据手册
- STM32基础教程(CubeMX)—— 无线通讯模块(NRF24L01)
- NRF24L01+模块实现双向通信(带ACK payload)