NRF24L01驱动代码

这段代码提供了NRF24L01无线通信模块的初始化、检测、读写寄存器、发送和接收数据等关键功能。通过SPI接口与微控制器进行交互,并设置相应的配置参数,如地址、数据宽度、通信频道和波特率,实现无线通信功能。
摘要由CSDN通过智能技术生成

#include "24l01.h"
#include "lcd.h"
#include "delay.h"
#include "spi.h"
// 
//NRF24L01驱动代码         
//
   
const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址
const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址
 
//初始化24L01的IO口
void NRF24L01_Init(void)
{
   RCC->APB2ENR|=1<<3;     //使能PORTB时钟     
  RCC->APB2ENR|=1<<5;  //使能PORTD时钟
  RCC->APB2ENR|=1<<8;  //使能PORTG时钟
 //这里pb12和pd2拉高,是为了防止互相影响 .
 //因为他们共用一个SPI口.  
 GPIOB->CRH&=0XFFF0FFFF;
 GPIOB->CRH|=0X00030000; //PB12 推挽     
 GPIOB->ODR|=1<<12;     //PB12上拉 防止W25X的干扰
      
 GPIOD->CRL&=0XFFFFF0FF;
 GPIOD->CRL|=0X00000300; //PD2 推挽     
 GPIOD->ODR|=1<<2;     //PD2上拉   禁止SD卡的干扰

 GPIOG->CRL&=0X00FFFFFF;
 GPIOG->CRL|=0X33000000; //PG6 7 推挽     
 GPIOG->CRH&=0XFFFFFFF0;
 GPIOG->CRH|=0X00000008; //PG8 输入     
 GPIOG->ODR|=7<<6;     //PG6 7 8 上拉   

 SPI2_Init();      //初始化SPI  
 //针对NRF的特点修改SPI的设置
  SPI2->CR1&=~(1<<6);  //SPI设备失能
 SPI2->CR1&=~(1<<1);  //空闲模式下SCK为0 CPOL=0
 SPI2->CR1&=~(1<<0);  //数据采样从第1个时间边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值