打印
[技术讨论]

STC+NRF24L01一直联不通

[复制链接]
826|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
spawml|  楼主 | 2022-6-20 15:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
用的STC8G1K08,20引脚的单片机加贴片型NRF24L01



sbit NRF_CSN  = P5^4;
sbit NRF_IRQ  = P1^7;
sbit NRF_CE   = P1^6;
sbit NRF_SCK  = P1^5;
sbit NRF_MISO = P1^4;
sbit NRF_MOSI = P1^3;



/********************************************/
/* 函数功能:检测24L01是否存在              */
/* 返回值;  0  存在                        */
/*           1  不存在                      */
/********************************************/
unsigned char NRF24L01_Check(void)
{
        unsigned char check_in_buf[5]={0x11,0x22,0x33,0x44,0x55};
        unsigned char check_out_buf[5]={0x00};

        NRF24L01_Write_Buf(WRITE_REG+TX_ADDR, check_in_buf, 5);
       
        NRF24L01_Read_Buf(READ_REG+TX_ADDR, check_out_buf, 5);
       
       
        if((check_out_buf[0] == 0x11)&&\
           (check_out_buf[1] == 0x22)&&\
           (check_out_buf[2] == 0x33)&&\
           (check_out_buf[3] == 0x44)&&\
           (check_out_buf[4] == 0x55))return 0;
        else return 1;
}       

这个电路和程序都是网上下载的,在进入主程序while之前有这个检测程序,检测nrf24l01是否存在就过不了,一直是返回1
希望大佬帮忙看看

使用特权

评论回复

相关帖子

沙发
ughbss| | 2022-6-20 15:55 | 只看该作者
看下你的模拟SPI时序是否正常

使用特权

评论回复
板凳
spawml|  楼主 | 2022-6-20 17:10 | 只看该作者
ughbss 发表于 2022-6-20 15:55
看下你的模拟SPI时序是否正常

/* 延时1ms函数 */
void Delay1ms()                //@35MHz
{
        unsigned char i, j;

        _nop_();
        _nop_();
        i = 46;
        j = 113;
        do
        {
                while (--j);
        } while (--i);
}

这个是里面的延时程序,频率调到35m,我也是用STC的下载软件调到了35m

使用特权

评论回复
地板
coody| | 2022-6-20 17:45 | 只看该作者
示波器看看模拟SPI时序。NRF24L01我用得很多,各种单片机都可以控制的。

使用特权

评论回复
5
spawml|  楼主 | 2022-6-20 18:02 | 只看该作者
coody 发表于 2022-6-20 17:45
示波器看看模拟SPI时序。NRF24L01我用得很多,各种单片机都可以控制的。

好的,非常感谢,我看看

使用特权

评论回复
6
cainiao518| | 2022-6-20 21:22 | 只看该作者
先确定硬件没问题

使用特权

评论回复
7
xxdcq| | 2022-6-21 10:44 | 只看该作者
一是检查时序对不对,
二是看看WRITE_REG+TX_ADDR和READ_REG+TX_ADDR是不是一致的

使用特权

评论回复
8
spawml|  楼主 | 2022-6-21 15:55 | 只看该作者
本帖最后由 spawml 于 2022-6-21 16:54 编辑

都是淘宝上新买的模块,一样的程序,第一不能执行,第二个和第三个可以用,第一个和第三个芯片丝印是一样的,真奇怪为什么第一个不能用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

36

帖子

0

粉丝