原码是正点原子的官方例程,对于发送模块,我只是修改了主函数部分。
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "24l01.h"
int main(void)
{
u8 key,mode,j=0;
u16 t=0;
u8 tmp_buf[33];
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
NRF24L01_Init();
POINT_COLOR=RED;
while(NRF24L01_Check())
{}
NRF24L01_TX_Mode();
mode=' ';
while(1)
{
if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
{
//key=mode;
for(t=0;t<32;t++)
{
// key++;
// if(key>('~'))key=' ';
tmp_buf[t]=j++;
}
//mode++;
if(mode>'~')mode=' ';
tmp_buf[32]=0;//¼ÓÈë½áÊø·û
}
delay_ms(1500);
};
}
程序下载到开发板,能检测到RF24L01模块是正常的,且有效。但是,就是无法发送数据,一直都停在那里,然后经过一步步的调试。都没有任何的改变,依旧发送不了信息。
所以就只能用原函数,未阉割版,也就是未改动的【正点原子】官方例程,在两个F1上尝试数据的发送与接收。
但是依旧是停在发送的步骤没反应,而且没办法跳出24l01.c文件,函数u8 NRF24L01_TxPacket(u8 *txbuf)里面的语句:
while(NRF24L01_IRQ!=0);
但是一个偶然的尝试,用手掰一下发送板的nrf24l01模块,神奇的可以通信了。所以,可以断定代码肯定好使了。
接着尝试,发现主要影响语句【while(NRF24L01_IRQ!=0);】,而这个语句和NRF_IRQ相关,也就是和PG6管脚相关。所以,在没有成功发送的时候,利用一根跳线跳出PG6,然后在跳线的另一端,用手搓一下就能实现数据发送了,也就是说,问题就出在PG6口上了。但是只知道和脉冲信号有关系,却不知道怎么修改程序。【求大神指点】
所以我就做了一个比较狗的修改。如图:

原码是正点原子的官方例程,对于发送模块,我只是修改了主函数部分。
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "24l01.h"
int main(void)
{
u8 key,mode,j=0;
u16 t=0;
u8 tmp_buf[33];
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
NRF24L01_Init();
POINT_COLOR=RED;
while(NRF24L01_Check())
{}
NRF24L01_TX_Mode();
mode=' ';
while(1)
{
if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
{
//key=mode;
for(t=0;t<32;t++)
{
// key++;
// if(key>('~'))key=' ';
tmp_buf[t]=j++;
}
//mode++;
if(mode>'~')mode=' ';
tmp_buf[32]=0;//¼ÓÈë½áÊø·û
}
delay_ms(1500);
};
}
程序下载到开发板,能检测到RF24L01模块是正常的,且有效。但是,就是无法发送数据,一直都停在那里,然后经过一步步的调试。都没有任何的改变,依旧发送不了信息。
所以就只能用原函数,未阉割版,也就是未改动的【正点原子】官方例程,在两个F1上尝试数据的发送与接收。
但是依旧是停在发送的步骤没反应,而且没办法跳出24l01.c文件,函数u8 NRF24L01_TxPacket(u8 *txbuf)里面的语句:
while(NRF24L01_IRQ!=0);
但是一个偶然的尝试,用手掰一下发送板的nrf24l01模块,神奇的可以通信了。所以,可以断定代码肯定好使了。
接着尝试,发现主要影响语句【while(NRF24L01_IRQ!=0);】,而这个语句和NRF_IRQ相关,也就是和PG6管脚相关。所以,在没有成功发送的时候,利用一根跳线跳出PG6,然后在跳线的另一端,用手搓一下就能实现数据发送了,也就是说,问题就出在PG6口上了。但是只知道和脉冲信号有关系,却不知道怎么修改程序。【求大神指点】
所以我就做了一个比较狗的修改。如图:

举报