OpenEdv-开源电子网

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

NRF24L01一直check error,已经卡了好几天了!!

[复制链接]

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
发表于 2022-5-6 20:50:21 | 显示全部楼层 |阅读模式

用正点的程序,因为引脚配置不一样所以修改了引脚的配置,分别是SPI的PA5,PA6和PB5,无线模块的PA0,PA4,PC2,程序里我都全部改过来了

这是SPI1的配置
void SPI1_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
  SPI_InitTypeDef  SPI_InitStructure;

        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE );//PORTB,PORTA时钟使能
        RCC_APB1PeriphClockCmd(        RCC_APB2Periph_SPI1,  ENABLE );//使能SPI1时钟

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //PA5,6推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA
      
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB

        GPIO_SetBits(GPIOB,GPIO_Pin_5);  //PB5上拉
        GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6);  //PA5,6上拉

        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //设置SPI单向或者双向的数据模式:SPI设置为双线双向全双工
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                //设置SPI工作模式:设置为主SPI
        SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;                //设置SPI的数据大小:SPI发送接收8位帧结构
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;                //串行同步时钟的空闲状态为0
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;        //串行同步时钟的第1个跳变沿(上升或下降)数据被采样
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                //NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256;                //定义波特率预分频的值:波特率预分频值为256
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;        //指定数据传输从MSB位还是LSB位开始:数据传输从MSB位开始
        SPI_InitStructure.SPI_CRCPolynomial = 7;        //CRC值计算的多项式
        SPI_Init(SPI1, &SPI_InitStructure);  //根据SPI_InitStruct中指定的参数初始化外设SPIx寄存器

        SPI_Cmd(SPI1, ENABLE); //使能SPI外设
      
        SPI1_ReadWriteByte(0xff);//启动传输         
}   


这是24L01的配置
void NRF24L01_Init(void)
{        
        GPIO_InitTypeDef GPIO_InitStructure;
  SPI_InitTypeDef  SPI_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOG|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE);         
                           

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                  
        GPIO_Init(GPIOA, &GPIO_InitStructure);
      
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;         
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;   
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;   
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_ResetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_4);
        GPIO_ResetBits(GPIOC,GPIO_Pin_2);
                 
  SPI1_Init();                  

        SPI_Cmd(SPI1, DISABLE);

        SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  
        SPI_InitStructure.SPI_Mode = SPI_Mode_Master;               
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;               
        SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;               
        SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;      
        SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;               
        SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;               
        SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;      
        SPI_InitStructure.SPI_CRCPolynomial = 7;      
        SPI_Init(SPI1, &SPI_InitStructure);  

        SPI_Cmd(SPI1, ENABLE);
                        
        NRF24L01_CE=0;                        
        NRF24L01_CSN=1;                       
}


请各位大佬帮忙看看!!!谢谢了呜呜呜


另外想问一下这个check函数是不是不需要配合另一个无线模块,还是说要两个板子都配置好才能check。
还有就是SPI的速率是不是有影响,到底应该设置为多少,我设置的是SPI1_SetSpeed(SPI_BaudRatePrescaler_16);
我看论坛很多人拔掉J-link就可以了,我用的也是J-link,这是是不是也有影响
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-6 20:59:14 | 显示全部楼层
本帖最后由 Wednes 于 2022-5-6 21:00 编辑

这是芯片引脚

模块

模块

芯片

芯片
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-7 14:51:54 | 显示全部楼层
顶顶顶,这两张图分别是板子的无线模块和芯片
)N1MN`}{(6YBQD(BQTB76WN.png
_LMI){68812~1_@2FEXKF2S.png
回复 支持 反对

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2033
金钱
2033
注册时间
2021-7-17
在线时间
635 小时
发表于 2022-5-9 10:18:24 | 显示全部楼层
如果排除硬件没有问题,可以烧录例程来验证一下,看是不是你自己写的问题了
回复 支持 反对

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2033
金钱
2033
注册时间
2021-7-17
在线时间
635 小时
发表于 2022-5-9 10:18:45 | 显示全部楼层
只能一点一点去排查问题了
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-11 20:43:24 | 显示全部楼层
顶顶顶
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-12 20:25:26 | 显示全部楼层
每日一顶
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2022-6-24
在线时间
3 小时
发表于 2022-6-24 10:50:43 来自手机 | 显示全部楼层
额,我当时也想换引脚来着,但有的引脚就是不行,可以先换一个,多试几个引脚
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-4-9
在线时间
9 小时
发表于 2023-6-12 17:44:16 | 显示全部楼层
楼主解决了吗,我也遇到了这个问题
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-4-9
在线时间
9 小时
发表于 2023-6-13 09:01:48 | 显示全部楼层

楼主解决了吗,我也遇到了这个问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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