OpenEdv-开源电子网

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

NRF24L01check一直error!!!

[复制链接]

2

主题

16

帖子

0

精华

新手上路

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

用正点的程序,因为引脚配置不一样所以修改了引脚的配置,分别是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 14:48:28 | 显示全部楼层
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-6 14:49:31 | 显示全部楼层
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4496
金钱
4496
注册时间
2018-5-11
在线时间
941 小时
发表于 2022-5-6 20:09:55 | 显示全部楼层
SPI的MOSI和MISO,
还有SCLK,
最好是沿用芯片的原有引脚,
否则就自己写SPI模拟驱动。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-6 20:57:33 | 显示全部楼层
本帖最后由 Wednes 于 2022-5-6 20:58 编辑
warship 发表于 2022-5-6 20:09
SPI的MOSI和MISO,
还有SCLK,
最好是沿用芯片的原有引脚,

芯片引脚是这样的

芯片

芯片
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-6 21:02:06 | 显示全部楼层
杀杀杀
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-6 21:02:44 | 显示全部楼层
下面是模块和芯片的图片[img][/img]
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4496
金钱
4496
注册时间
2018-5-11
在线时间
941 小时
发表于 2022-5-6 22:44:25 | 显示全部楼层
我记得SPI1是PA5、PA6和PA7呀
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

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

顶顶顶这两张分别是板子的无线模块和芯片
)N1MN`}{(6YBQD(BQTB76WN.png
_LMI){68812~1_@2FEXKF2S.png
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-8 21:26:45 | 显示全部楼层
顶顶顶
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

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

使用道具 举报

1

主题

73

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1304
金钱
1304
注册时间
2019-1-1
在线时间
173 小时
发表于 2022-5-11 20:58:16 | 显示全部楼层
顶顶顶
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

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

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2022-5-12 22:49:02 | 显示全部楼层
SPI的引脚不对 SPI1的引脚只能用PA4567或者PA15 PB345这两种 你混着用怎么可能好使

用原子的程序 硬件上也得对得上才行啊
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2022-4-29
在线时间
10 小时
 楼主| 发表于 2022-5-13 09:22:24 | 显示全部楼层
warship 发表于 2022-5-6 22:44
我记得SPI1是PA5、PA6和PA7呀

我用的不是正点的板子,是移植这个程序,我这个板子SPI1是PA5、PA6和PB5
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4496
金钱
4496
注册时间
2018-5-11
在线时间
941 小时
发表于 2022-5-13 11:38:28 | 显示全部楼层
Wednes 发表于 2022-5-13 09:22
我用的不是正点的板子,是移植这个程序,我这个板子SPI1是PA5、PA6和PB5

我说的就是这一点,
SPI的这三根线,
最好使用STM32的原有定义引脚,
否则要么管脚重映射,
要么人工模拟SPI的时序。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-27 23:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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