历史上的今天
今天是:2024年12月14日(星期六)
2019年12月14日 | NRF24L01发射+接受程序实测通过
2019-12-14 来源:51hei
主控STC89C52RC
晶振:11.0592
while(NRF24L01_TxPacket(tmp_buf)!=TX_OK); //发送失败则一直发送,直到对方接受成功为止
此句主要是检测发送信号发送完成
自己做实验可取此句
大家直接拿走吧,,不用谢
单片机+nrf24l01接受源程序如下(主程序):
/***********************
小板测试时如果没有效果
就将2.4G拔下,在插上,按下复位,再次发送数据即可
如果发送数据时led闪烁,应该是发送数据的按键没有去抖
***************************/
#include #include"NRF_24L01.h" sbit led=P1^0; void main(void) { unsigned char tmp_buf[33]; delay(200); init_nrf24l01_io(); //初始化 delay(200); led=1; ifnnrf_rx_mode(); //设置为RX模式 while(1) { if(NRF24L01_RxPacket(tmp_buf)==RX_OK)//一旦接收到信息,则显示出来. { if(tmp_buf[31]=='a') led=(!led); //led取反 } } } nrf24l01发射程序: #include #include"NRF_24L01.h" sbit led=P1^0; sbit key=P3^0; uchar gled[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main(void) { unsigned char t; unsigned char tmp_buf[33]={0}; unsigned char buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5}; init_nrf24l01_io(); //初始化 delay(20); SPI_Write_Buf(WRITE_REG+TX_ADDR,buf,5); //数据存入寄存器 SPI_Read_Buf(TX_ADDR,buf,5); //数据读出寄存器 for(t=0;t<5;t++)if(rx_buf[t]!=0XA5)break; if(t==5) {led=0;delay(20000);led=1;} //验证数据,正常则led闪烁 ifnnrf_tx_mode(); //设为TX模式 while(1) { if(key==0) { led=0; for(t=0;t<33;t++) { tmp_buf[t]=0; } tmp_buf[31]='a'; NRF24L01_TxPacket(tmp_buf); //发送数据 while(NRF24L01_TxPacket(tmp_buf)!=TX_OK); //发送失败则一直发送,直到对方接受成功为止 tmp_buf[31]=0; led=1; } } }
史海拾趣
|
《一个高人的设计》帖子发出后,引起了许多坛友的兴趣的同时,也有一些坛友表示希望能对电路做一讲解。在对电路的特点探讨一番后,我想在此抛砖引玉,先讲讲我对此电路的理解吧。虽然对电路看了有些时间了,但是由于水平有限,不当之处还请各位老师 ...… 查看全部问答> |
|
本人将Lwip 移植到基于ARM9和ucos上。用AXD调试,接收到一个IP数据包。程序走到LWIP 中的 ip_input()函数中的 if (ip_addr_cmp(&(iphdr->dest), &(netif->ip_addr)) || 行时,跑飞了(如下代码)。在AXD中将其反汇编时,发现编译成 ...… 查看全部问答> |
|
C51单片机中P0口和P2口作为拓展片外RAM时是如何工作的? 确切的说,我想知道用C语言如何对P0口P2口赋值以达到对片外RAM中数据的访问。但现在的问题是,我不知道P0口和P2口如何工作的?P0口作为“数据/地址”复用端口时,对片外RAM的数据访问是自动切换的,还是要手动的对P0口P2口赋值呢? ============== ...… 查看全部问答> |
|
sd卡驱动加载成功,在文件系统下面却看不到对应的文件夹???? 我的sd卡在wince6.0下驱动成功,而且在控制面板的storage manager里也能看到我的sd卡的大小,我还可以进行Format和new partition动作,都能成功,就是在文件系统上看不见我的sd卡文件夹,请问是怎么回事? 下面是CE6.0本身自带的注册表,也是我最 ...… 查看全部问答> |
|
我的芯片是ispLSI1016-60LJ,可是软件中器件选择里面,1016的只有ispLSI1016-60LH44/883这一种,其他的都是1016EA,这怎么办呢?… 查看全部问答> |
|
想在FPGA中做双口RAM或者RAM,但是DSP的时钟线没有引入到FPGA上,这时该如何处理啊,看了一些资料上DSP的外设时钟线都引入到了FPGA上,望大家指教啊!… 查看全部问答> |
|
有三个控制信号输入到74LS10,想经过与非门控制PMOS管IRF4905的通断,前面加了8550的三极管,可是控制不了通断,该怎样改进呢?… 查看全部问答> |
|
《MCU工程师炼成记》-- 关于MSP430(已@EEWORLD) 背景:初识MSP430,源于我参加的太阳能电动车队,队里有一块儿MSP430F5438的开发板,记得很清楚,是利尔达的。 当时对这块小小的板子,居然可以靠两节5号电池支撑这么久,感到很惊讶。 前因:在自己开发的过程中,发现了MSP430的寄存器配置,时钟 ...… 查看全部问答> |




