OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3156|回复: 0

2.4G NRF24L01

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2015-4-16
在线时间
2 小时
发表于 2015-9-11 11:57:54 | 显示全部楼层 |阅读模式
5金钱
用原子哥的程序,两个板子都能检测到NRF24L01,发送端发送不了数据,总是发送失败,接收端自然接收不到数据。不知为什么?<br />
#include "led.h"<br />
#include "delay.h"<br />
#include "key.h"<br />
#include "sys.h"<br />
#include "lcd.h"<br />
#include "usart.h"        &nbsp;<br />
#include "24l01.h"         &nbsp;<br />
//ALIENTEK????STM32??·?°????é32<br />
//?????¨?? ???é &nbsp;<br />
//?????§????www.openedv.com<br />
//?????????í??×????????????? &nbsp;<br />
&nbsp;int main(void)<br />
&nbsp;{        &nbsp;<br />
u8 key,mode;<br />
u16 t=0;                        &nbsp;<br />
u8 tmp_buf[33];                 &nbsp; &nbsp;<br />
delay_init();         &nbsp; &nbsp;         //???±??????????         &nbsp;<br />
NVIC_Configuration();          //?è??NVIC????·?×é2:2??????????????2???ì????????<br />
uart_init(9600);                 //?&reg;??????????9600<br />
&nbsp;        LED_Init();                         &nbsp; &nbsp; //LED??????????<br />
LCD_Init();        //??????LCD<br />
KEY_Init();         //°??ü?????? <br />
<br />
&nbsp;        NRF24L01_Init(); &nbsp; &nbsp;        //??????NRF24L01&nbsp;<br />
<br />
POINT_COLOR=RED;//?è??×??????ì??&nbsp;<br />
LCD_ShowString(60,50,200,16,16,"WarShip STM32"); <br />
LCD_ShowString(60,70,200,16,16,"NRF24L01 TEST"); <br />
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");<br />
LCD_ShowString(60,110,200,16,16,"2012/9/13");                 &nbsp;<br />
&nbsp;        while(NRF24L01_Check())        //?ì?éNRF24L01??·?????. <br />
{<br />
LCD_ShowString(60,130,200,16,16,"NRF24L01 Error");<br />
delay_ms(200);<br />
LCD_Fill(60,130,239,130+16,WHITE);<br />
&nbsp;                delay_ms(200);<br />
}                                                                 &nbsp;&nbsp;<br />
LCD_ShowString(60,130,200,16,16,"NRF24L01 OK");<br />
&nbsp;        while(1)//??????·??·?¨????????????!<br />
{<br />
key=KEY_Scan(0);<br />
if(key==KEY_RIGHT)<br />
{<br />
mode=0; &nbsp;&nbsp;<br />
break;<br />
}else if(key==KEY_DOWN)<br />
{<br />
mode=1;<br />
break;<br />
}<br />
t++;<br />
if(t==100)LCD_ShowString(10,150,230,16,16,"KEY0:RX_Mode &nbsp;KEY1:TX_Mode"); //?????????á??????<br />
&nbsp;                if(t==200)<br />
{ <br />
LCD_Fill(10,150,230,150+16,WHITE);<br />
t=0;&nbsp;<br />
}<br />
delay_ms(5);         &nbsp;<br />
} &nbsp;&nbsp;<br />
&nbsp;        LCD_Fill(10,150,240,166,WHITE);//??????????????                 &nbsp;<br />
&nbsp;        POINT_COLOR=BLUE;//?è??×?????????         &nbsp;&nbsp;<br />
if(mode==0)//RX????<br />
{<br />
LCD_ShowString(60,150,200,16,16,"NRF24L01 RX_Mode"); <br />
LCD_ShowString(60,170,200,16,16,"Received DATA:"); <br />
NRF24L01_RX_Mode();                 &nbsp;<br />
while(1)<br />
{         &nbsp;                 &nbsp; &nbsp;                 &nbsp; &nbsp;                                &nbsp;<br />
if(NRF24L01_RxPacket(tmp_buf)==0)//???&copy;??????????,?ò????????.<br />
{<br />
tmp_buf[32]=0;//????×?·??&reg;?á??·?<br />
LCD_ShowString(0,190,239,32,16,tmp_buf); &nbsp; &nbsp;<br />
}else delay_us(100);         &nbsp;&nbsp;<br />
t++;<br />
if(t==10000)//?ó??1s????±?????×???<br />
{<br />
t=0;<br />
LED0=!LED0;<br />
}                                  &nbsp; &nbsp;<br />
}; <br />
}else//TX????<br />
{                                                         &nbsp; &nbsp;<br />
LCD_ShowString(60,150,200,16,16,"NRF24L01 TX_Mode"); <br />
NRF24L01_TX_Mode();<br />
mode=' ';//???????ü???? &nbsp;<br />
while(1)<br />
{         &nbsp;                 &nbsp;                                 &nbsp;<br />
if(NRF24L01_TxPacket(tmp_buf)==TX_OK)<br />
{<br />
LCD_ShowString(60,170,239,32,16,"Sended DATA:"); <br />
LCD_ShowString(0,190,239,32,16,tmp_buf);&nbsp;<br />
key=mode;<br />
for(t=0;t&lt;32;t++)<br />
{<br />
key++;<br />
if(key&gt;('~'))key=' ';<br />
tmp_buf[t]=key; <br />
}<br />
mode++;&nbsp;<br />
if(mode&gt;'~')mode=' '; &nbsp;         &nbsp;<br />
tmp_buf[32]=0;//?????á??·?                 &nbsp;&nbsp;<br />
}else<br />
{                                                                                 &nbsp; <br />
&nbsp;                                LCD_ShowString(60,170,239,32,16,"Send Failed ");&nbsp;<br />
LCD_Fill(0,188,240,218,WHITE);//??????????????                         &nbsp;&nbsp;<br />
};<br />
LED0=!LED0;<br />
delay_ms(1500);                                 &nbsp; &nbsp;<br />
};<br />
} &nbsp; &nbsp;&nbsp;<br />
}<br />
<div>
        <br />
</div>
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-29 23:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表