微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于STM32的NRF2401问题

关于STM32的NRF2401问题

时间:10-02 整理:3721RD 点击:
代码如下:#include "sys.h"#include "delay.h"
#include "usart.h"
#include "2401.h"
#include "led.h"
#include "key.h"
#include "stdio.h"
int main(void)
{
        u8 Scan_Status,        Repeat_Status;
        u8 CT[2]={1,1};
        u8 SN1[4]={0,0,0,0};
        u8 Tx_Buf1[4]={'1','1','1','1'}; //òa·¢?íμ?êy?Y 1
        u8 Rx_Buf[32]; //?óê?μ?μ?êy?Y  ×??à32×??ú
        u8 key=0;
       
        SystemInit();
        delay_init(72);             //?óê±3?ê??ˉ
        NVIC_Configuration();
        uart_init(9600);
        LED_Init();
        KEY_Init();
        NRF24L01_Init();
        while(NRF24L01_Check())
        {
                delay_ms(300);
                LED0=!LED0;
                LED1=!LED1;
        }
        LED1=1;
        while(1)
        {
                RX_Mode();//?óê??£ê?
               
                while(NRF24L01_RxPacket(Rx_Buf))
                {
                        Scan_Status = KEY_Scan();
                        if(Scan_Status==0)
                        {
                                TX_Mode();
                                NRF24L01_TxPacket(SN1);
                                SN1[0]=0;
                                 SN1[1]=0;
                                 SN1[2]=0;
                                 SN1[3]=0;
                                   LED1=0;
                                 delay_ms(4000);
                                 LED1=1;
                                 delay_ms(4000);       
                                break;
                        }
                }
                if(Rx_Buf[0]==1)
                {
                        Rx_Buf[0]=0;
                        LED1=0;
                        delay_ms(300);
                        LED1=1;
                        delay_ms(300);
                }
        }
}
2401和按键的底成搭建没有问题,
问题:通过按键扫描让2401接收数据,但是扫描不到按键按下,其中LED1用来提示接收到了数据的。但是按键按下灯却没有出现闪烁
求大神指教

肯定是数据还没有输入到单片机          应该是程序问题

你的程序有问题  是不是逻辑不对啊

你的程序是每次循环查询是否有接收到数据,然后发送出去吗?数据发送完成后就直接设置成接收模式,在主循环里面一直设置成接收模式会不会把一些标志给清除了

  while(NRF24L01_RxPacket(Rx_Buf))
很可能是没接受到数据 或者按键返回结果为0

按键返回值不是0,但是不知道为什么没有接收到数据    求帮忙

跟我的问题差不多,不知道你的解决了没,我的程序只能发送,不知道为什么接收不到

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top