资源简介
用DSP控制nrf24L01的c程序,主要是针对ADI公司的bf512芯片
代码片段和文件信息
#include
#include
#include
#include “PLL.h“
#include “LED.h“
#include “Key.h“
#include “nRF24L01.h“
//**************************** NRF24L01*********************//
#define nRF_TX_ADDR_WIDTH 5 // x uints TX address width
#define nRF_RX_ADDR_WIDTH 5 // x uints RX address width
#define nRF_TX_PLOAD_WIDTH 5 // x uints TX payload
#define nRF_RX_PLOAD_WIDTH 5 // x uints TX payload
unsigned char nRF_TX_ADDRESS[nRF_TX_ADDR_WIDTH] = {0x340x430x100x100x01}; //要发送数据的目标地址
unsigned char nRF_RX_ADDRESS[nRF_RX_ADDR_WIDTH] = {0x340x430x100x100x01}; //需要接收数据的目标地址
unsigned char nRF_tx_buf[nRF_TX_PLOAD_WIDTH] = {0};
unsigned char nRF_rx_buf[nRF_RX_PLOAD_WIDTH] = {0};
void Start_nRF24L01(void)
{
unsigned char status = 0x00status2 = 0vali = 1;
SetLEDs(7);
Init_Interrupt_nRF24L01();
status = Read_Reg_nRF24L01(nRF_STATUS);
Write_Reg_nRF24L01(nRF_WRITE_REG + nRF_STATUSstatus);
nRF_tx_buf[0] = 6;
SetTX_Mode_nRF24L01(nRF_tx_bufnRF_TX_PLOAD_WIDTH);
SetRX_Mode();
while(1)
{
if(*pPORTFIO & KEY1)
{
Delayus_nRF24L01(10000);
if(*pPORTFIO & KEY1)
{
// SetLEDs(1);
nRF_tx_buf[0] = 1;
// Flush_FIFO_nRF24L01(nRF_FLUSH_TX);
SetTX_Mode_nRF24L01(nRF_tx_bufnRF_TX_PLOAD_WIDTH);
while(*pPORTFIO & KEY1);
SetRX_Mode();
}
}
else if(*pPORTFIO & KEY2)
{
Delayus_nRF24L01(10000);
if(*pPORTFIO & KEY2)
{
// SetLEDs(2);
nRF_tx_buf[0] = 2;
// Flush_FIFO_nRF24L01(nRF_FLUSH_TX);
SetTX_Mode_nRF24L01(nRF_tx_bufnRF_TX_PLOAD_WIDTH);
while(*pPORTFIO & KEY2);
SetRX_Mode();
}
}
else if(*pPORTFIO & KEY3)
{
Delayus_nRF24L01(10000);
if(*pPORTFIO & KEY3)
{
// SetLEDs(3);
nRF_tx_buf[0] = 3;
// Flush_FIFO_nRF24L01(nRF_FLUSH_TX);
SetTX_Mode_nRF24L01(nRF_tx_bufnRF_TX_PLOAD_WIDTH);
while(*pPORTFIO & KEY3);
SetRX_Mode();
}
}
else if(*pPORTFIO & KEY4)
{
Delayus_nRF24L01(10000);
if(*pPORTFIO & KEY4)
{
// SetLEDs(4);
nRF_tx_buf[0] = 4;
// Flush_FIFO_nRF24L01(nRF_FLUSH_TX);
SetTX_Mode_nRF24L01(nRF_tx_bufnRF_TX_PLOAD_WIDTH);
while(*pPORTFIO & KEY4);
SetRX_Mode();
}
}/**/
// status = Write_Reg_nRF24L01(nRF_WRITE_REG + nRF_CONFIG++i);
status = Write_Buf_nRF24L01(nRF_WRITE_REG + nRF_TX_ADDRnRF_RX_ADDRESS5);
status2 = Read_Buf_nRF24L01(nRF_TX_ADDRnRF_rx_buf5);
// val = Read_Reg_nRF24L01(nRF_CONFIG);
asm(“nop;“);
SetRX_Mode();
}
}
EX_INTERRUPT_HANDLER(PORTF_A_ISR)
{
unsigned char statusstatus2;
asm(“nop;“);
if(*pPORTFIO & nRF_IRQ)
{
*pPORTFIO_CLEAR = nRF_IRQ; //clear interrupt flag
status = Read_Reg_nRF24L01(nRF_STATUS);
Write_Reg_nRF24L01(nRF_WRITE_REG + nRF_STATUSstatus);//clear the interrupt flag
status2 = Read_Reg_nRF24L01(nRF_STATUS);
asm(“nop;“);
if(status & nRF_RX_DR)
{
Read_Buf_nRF24L01(nRF_RD_RX_PLOADnRF_rx_bufn
- 上一篇:MC34063升压电路
- 下一篇:LCD1602时钟可翻页代码
相关资源
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- NRF24L01实现51与STM32双向通讯
- nRF24L01无线模块在单片机与FPGA上的应
- STM32F103C8T6+NRF24l01无线通信
- EESkill NRF24L01 无线模块用户手册
- 基于nRF24L01的射频收发电路原理图
- nRF24L01无线模块原理图和与5V单片机的
- 基于AVR的NRF24L01跳频通信程序
- STM32+DHT11+OLED+RTC+MQ2+NRF24L01+串口12
- NRF24L01收发程序STM32F407
- 基于MSP430和NRF24L01的封闭环境检测系统
- nRF24L01_Datasheet(英文)
- stm32f405/stm32f407单片机nrf24l01无线通信
- 基于STM32F103C8T6及NRF24L01的摔倒检测+
- nrf24l01自组网协议
- STM32F103RCT6的NRF24L01六通道接收收、发
- stm32F103 +nrf24l01 发送程序
- nRF24LE1PCB设计参考+程序
- STM8+NRF24l01+发送程序
- STM8+NRF24l01+接收程序
- NRF24L01 51单片机温度监控程序带上位机
- NRF24L01 中文数据手册及
- stm32f103+nrf24l01 收发程序按键选择模式
- nrf24l01 verilog发送程序
- NRF24L01+串口上位机
- 基于stm8s103f3p6的NRF24L01收发模块资料电
- Ginkgo_USB-SPI_nRF24L01_Setup_v1.0.0.rar
- STM32 NRF24L01程序资料
- MPU6050 DMP+ADXL345+NRF24L01+HAL库+STM32F103C
- STM32F103VE_NRF24L01_GPIO模拟SPI通讯程序
评论
共有 条评论