资源简介
用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时钟可翻页代码
相关资源
- nrf24L01+实验原理图和PCB
- NRF24l01_51单片机+232串口传输
- 基于NRF24L01的无线温度测量代码大全含
- 无线收发芯片NRF24L01数据手册
- 使用51单片机控制nRF24L01的多种例程
- NRF24l01双向通信(100%可用)
- 无线测温程序
- nrf24L01双向通信程序51单片机
- msp430f5438a操作nrf24l01
- STM32F103 NRF24L01无线通讯模块驱动例程
- NRF24L01编程,nrf24l01中文资料
- NRF24L01的STM32测试程序
- nRF24L01中文手册.pdf
- 主控芯片stm32f103c8t6 NRF24L01 使用IRQ处理
- MSP430F149写的NRF24L01收发代码
- NRF24l01收发程序带LCD1602液晶及串口通
- STC15W4-nRF24L01 项目
- 基于两块430单片机及nrf24l01无线数据传
- 2.4G无线通信模块(接收端代码+发射端
- 51单片机nrf24L01遥控小车
- 基于nRF24L01和STM32的无线文件收发系统
- nRF24L01详细中文资料+51程序
- 基于arduino的无线温湿度传输系统
- nrf24L01无线模块+温度测量
- 51单片机+DS18B20+NRF24L01+LCD1602=无线温度
- sht10+bh1750+nrf24l01数据传输
- NRF24L01全双工调试程序
- 基于51单片机的NRF24L01双向通信
- stm32f103 nrf24l01+实现双机通信
- NRF24L01程序
评论
共有 条评论