中级会员
- 积分
- 267
- 金钱
- 267
- 注册时间
- 2012-11-5
- 在线时间
- 11 小时
|
<p>我是一块是接收板,一块是发送板,我希望的功能是这样的:当发送板的KEY1键按下的时候,接收板的LED灯会因KEY1键的按下<br />
而改变,但是不行。。。大虾赐教</p>
<p><span style="color:#e53333;">我接收板的程序是这样的:</span></p>
<p>#include <stm32f10x_lib.h> <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 />
RCC->APB2ENR|=1<<3; //使能PB时钟<br />
GPIOB->CRL&=0x00ffffff; <br />
GPIOB->CRL|=0X33000000; //PB6,PB7推挽输出模式<br />
GPIOB->ODR|=3<<6; //PB6,PB7输出高<br />
}<br />
//主函数<br />
//接收信息,发送端KEY1控制LED灯的亮灭<br />
int main()<br />
{ <br />
u8 tmp_buf[33];<br />
Stm32_Clock_Init(9); //初始化系统时钟<br />
delay_init(72); //初始化延时函数<br />
uart_init(72,9600); //初始化串口1<br />
KEY_Init(); //初始化KEY<br />
NRF24L01_Init(); //初始化NRF<br />
IO_Init(); //初始化IO端口<br />
 Bout(6)=0; //初始化LED显示的值<br />
 Bout(7)=0;<br />
while(NRF24L01_Check()) //检测是否相连<br />
{<br />
LED0=!LED0;<br />
delay_ms(500); <br />
}<br />
RX_Mode();<br />
while(1)<br />
{<br />
if(NRF24L01_RxPacket(tmp_buf)==0)<br />
{<br />
 Bout(6)=!PBout(6); //每接收一次取反<br />
} <br />
} <br />
}<br />
</p>
<p><span style="color:#e53333;">发送板的程序是这样的:</span><br />
</p>
<p>#include <stm32f10x_lib.h><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 />
u8 key;<br />
u8 tmp_buf[33];<br />
Stm32_Clock_Init(9); //初始化系统时钟<br />
delay_init(72); //初始化延时函数<br />
uart_init(72,9600); //初始化串口1<br />
LCD_Init(); //初始化LCD<br />
KEY_Init(); //初始化KEY<br />
LED_Init(); //初始化LED<br />
NRF24L01_Init(); //初始化NRF<br />
 OINT_COLOR=RED;<br />
LCD_ShowString(60,50,"This is a transmit");<br />
while(NRF24L01_Check()) //是否检测得到NRF<br />
{<br />
LCD_ShowString(60,70,"NO RECEIVE");<br />
delay_ms(500);<br />
LED0=!LED0;<br />
}<br />
LCD_ShowString(60,70,"NOW PRESS KEY1");<br />
while(1)<br />
{<br />
if(key==1) //按下KEY1一次灯变一次<br />
{ <br />
TX_Mode(); //开启发送模式<br />
}<br />
else<br />
{<br />
LCD_ShowString(60,170,"send failed"); <br />
}<br />
}<br />
}<br />
</p> |
|