OpenEdv-开源电子网

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

我用两块stm32的板做NRF24l01实验,程序做了修改,但是不行。。求大虾。。

[复制链接]

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
发表于 2013-3-30 11:51:43 | 显示全部楼层 |阅读模式
<p>我是一块是接收板,一块是发送板,我希望的功能是这样的:当发送板的KEY1键按下的时候,接收板的LED灯会因KEY1键的按下<br />
而改变,但是不行。。。大虾赐教</p>
<p><span style="color:#e53333;">我接收板的程序是这样的:</span></p>
<p>#include &lt;stm32f10x_lib.h&gt; <br />
#include "sys.h"<br />
#include "delay.h"<br />
#include "usart.h"<br />
#include "key.h"<br />
#include "led.h"<br />
#include "24l01.h"</p>
<p>//控制电机的IO口<br />
void IO_Init(void)<br />
{<br />
&nbsp;RCC-&gt;APB2ENR|=1&lt;&lt;3;&nbsp;&nbsp;&nbsp;//使能PB时钟<br />
&nbsp;GPIOB-&gt;CRL&amp;=0x00ffffff;&nbsp;&nbsp;<br />
&nbsp;GPIOB-&gt;CRL|=0X33000000;&nbsp;&nbsp; //PB6,PB7推挽输出模式<br />
&nbsp;GPIOB-&gt;ODR|=3&lt;&lt;6;&nbsp;&nbsp;&nbsp; //PB6,PB7输出高<br />
}<br />
//主函数<br />
//接收信息,发送端KEY1控制LED灯的亮灭<br />
int main()<br />
{&nbsp;<br />
&nbsp;u8 tmp_buf[33];<br />
&nbsp;Stm32_Clock_Init(9);&nbsp;//初始化系统时钟<br />
&nbsp;delay_init(72);&nbsp;&nbsp;&nbsp;&nbsp; //初始化延时函数<br />
&nbsp;uart_init(72,9600);&nbsp;&nbsp;&nbsp; //初始化串口1<br />
&nbsp;KEY_Init();&nbsp;&nbsp;&nbsp;&nbsp; //初始化KEY<br />
&nbsp;NRF24L01_Init(); &nbsp;&nbsp; //初始化NRF<br />
&nbsp;IO_Init();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初始化IO端口<br />
&nbspBout(6)=0;&nbsp;&nbsp;&nbsp;&nbsp; //初始化LED显示的值<br />
&nbspBout(7)=0;<br />
&nbsp;while(NRF24L01_Check())&nbsp;&nbsp;//检测是否相连<br />
&nbsp;{<br />
&nbsp;&nbsp;LED0=!LED0;<br />
&nbsp;&nbsp;delay_ms(500);&nbsp;<br />
&nbsp;}<br />
&nbsp;RX_Mode();<br />
&nbsp;while(1)<br />
&nbsp;{<br />
&nbsp;&nbsp;if(NRF24L01_RxPacket(tmp_buf)==0)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbspBout(6)=!PBout(6);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //每接收一次取反<br />
&nbsp;&nbsp;}&nbsp;&nbsp;<br />
&nbsp;} <br />
}<br />
</p>
<p><span style="color:#e53333;">发送板的程序是这样的:</span><br />
</p>
<p>#include &lt;stm32f10x_lib.h&gt;<br />
#include "sys.h"<br />
#include "delay.h"<br />
#include "usart.h"<br />
#include "lcd.h"<br />
#include "key.h"<br />
#include "led.h"<br />
#include "24l01.h"</p>
<p>int main()<br />
{<br />
&nbsp;u8 key;<br />
&nbsp;u8 tmp_buf[33];<br />
&nbsp;Stm32_Clock_Init(9);&nbsp;//初始化系统时钟<br />
&nbsp;delay_init(72);&nbsp;&nbsp;&nbsp; //初始化延时函数<br />
&nbsp;uart_init(72,9600);&nbsp;//初始化串口1<br />
&nbsp;LCD_Init();&nbsp;&nbsp;//初始化LCD<br />
&nbsp;KEY_Init();&nbsp;&nbsp;&nbsp;&nbsp; //初始化KEY<br />
&nbsp;LED_Init();&nbsp;&nbsp;&nbsp;//初始化LED<br />
&nbsp;NRF24L01_Init();&nbsp; //初始化NRF<br />
&nbspOINT_COLOR=RED;<br />
&nbsp;LCD_ShowString(60,50,"This is a transmit");<br />
&nbsp;while(NRF24L01_Check())&nbsp;&nbsp; //是否检测得到NRF<br />
&nbsp;{<br />
&nbsp;&nbsp;LCD_ShowString(60,70,"NO RECEIVE");<br />
&nbsp;&nbsp;delay_ms(500);<br />
&nbsp;&nbsp;LED0=!LED0;<br />
&nbsp;}<br />
&nbsp;LCD_ShowString(60,70,"NOW PRESS KEY1");<br />
&nbsp;while(1)<br />
&nbsp;{<br />
&nbsp;&nbsp;if(key==1)&nbsp;&nbsp;//按下KEY1一次灯变一次<br />
&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;TX_Mode();&nbsp;&nbsp;//开启发送模式<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;else<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;LCD_ShowString(60,170,"send failed");&nbsp;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
学习之路漫长而修远......
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-3-30 12:27:30 | 显示全部楼层
你的发送端程序就是设置TX模式就完了?
<br>先好好学学我们的例程吧!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
 楼主| 发表于 2013-3-30 12:52:05 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>哦,谢了
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 18:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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