OpenEdv-开源电子网

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

STM32F103C8T6一直检测不到nRF24L01

[复制链接]

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2018-9-1
在线时间
19 小时
发表于 2018-9-3 22:31:24 | 显示全部楼层 |阅读模式
1金钱
准备做个遥控器,最小系统用的是STM32F103C8T6, QQ截图20180903222558.png
调了几天,一直检测不出来nRf24l01模块。这是检测代码,程序用的软件SPI。附件是全部程序,原子哥帮忙看一下。
[mw_shl_code=c,true]void NRF24L01_check( void )
{
        uint8_t i;
        uint8_t buf[5]={ 0XA5,0XA5,0XA5,0XA5,0XA5,};
        uint8_t read_buf[5];
         
        while( 1 )
        {
                NRF24L01_Write_Buf( TX_ADDR, buf, 5 );                        //写入5个字节的地址
                NRF24L01_Read_Buf( TX_ADDR, read_buf, 5 );                //读出写入的地址  
                for( i = 0; i < 5; i++ )
                {
                        if( 0xA5 == read_buf )
                        {
                                break;
                        }       
                }
               
                if( 5 == i )
                {
                        break;
                }
                else
                {
                                        display_16x16(7,1,N);
                                        display_16x16(7,17,O);
                }
                delay_ms( 2000 );
        }
}[/mw_shl_code]

R20之遥控.rar

4.49 MB, 下载次数: 226

最佳答案

查看完整内容[请看2#楼]

改成这样 NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//写入5个字节的地址. NRF24L01_Read_Buf(NRF_READ_REG+TX_ADDR,buf,5); //读出写入的地址 前面要加寄存器写命令和读命令
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
912
金钱
912
注册时间
2019-7-5
在线时间
189 小时
发表于 2018-9-3 22:31:25 | 显示全部楼层
轶翊邑 发表于 2019-12-25 00:14
我也是这种情况,想问一下楼主,解决了没?

改成这样
        NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//写入5个字节的地址.       
        NRF24L01_Read_Buf(NRF_READ_REG+TX_ADDR,buf,5); //读出写入的地址
前面要加寄存器写命令和读命令
回复

使用道具 举报

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2018-9-1
在线时间
19 小时
 楼主| 发表于 2018-9-3 22:35:56 | 显示全部楼层
硬件连接:均用的GPIOA口
CSN------GPIOA-Pin2
CE------GPIOA-Pin3
MOSI------GPIOA-Pin4
SCK------GPIOA-Pin5
IRQ------GPIOA-Pin6
MISO------GPIOA-Pin7
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-10-24
在线时间
2 小时
发表于 2018-9-3 23:12:55 | 显示全部楼层
是不是应该改成
if( 0xA5 != read_buf[i] )
            {
                break;
            }   
回复

使用道具 举报

2

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2018-9-1
在线时间
19 小时
 楼主| 发表于 2018-9-18 16:11:33 | 显示全部楼层
Antio 发表于 2018-9-3 23:12
是不是应该改成
if( 0xA5 != read_buf )
            {

大意了 ,改过之后还是不行,正在排查IO口配置
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2017-11-21
在线时间
6 小时
发表于 2018-9-30 10:29:34 | 显示全部楼层
楼主问题解决了没有,我也碰到类似的问题,一开始还检测得到,后面怎么都不行了
回复

使用道具 举报

2

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2018-9-25
在线时间
13 小时
发表于 2018-10-13 09:18:50 | 显示全部楼层
你在if(5==i)这里逻辑写错了,你这里用了break,那么如果检测到了,程序就重启了,如果没检测到显示没有检测到。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-11-14
在线时间
1 小时
发表于 2019-11-17 15:46:41 | 显示全部楼层
楼主,请问问题找到了吗。我也出现这样的问题
回复

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2019-6-2
在线时间
13 小时
发表于 2019-12-25 00:14:27 | 显示全部楼层
我也是这种情况,想问一下楼主,解决了没?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-12-25
在线时间
2 小时
发表于 2019-12-27 21:10:50 | 显示全部楼层
廖兄,解决了没?能否看下代码。使用SPI硬件方面要做什么吗
回复

使用道具 举报

19

主题

76

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2019-10-17
在线时间
42 小时
发表于 2020-3-17 22:42:40 | 显示全部楼层
都遇到这个问题,怎么搞哦~~~~~
回复

使用道具 举报

135

主题

208

帖子

0

精华

高级会员

Rank: 4

积分
641
金钱
641
注册时间
2018-6-19
在线时间
132 小时
发表于 2020-4-10 15:13:23 | 显示全部楼层
Blokeke 发表于 2020-3-17 22:42
都遇到这个问题,怎么搞哦~~~~~

Si24R1Datasheet.pdf (2.13 MB, 下载次数: 27)
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2020-12-10
在线时间
6 小时
发表于 2020-12-14 12:33:59 来自手机 | 显示全部楼层
liaohaijian 发表于 2019-12-25 12:16
改成这样
        NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//写入5个字节的地址.       
        NRF24L01_Read_B ...

也解决了我的问题 感谢!这是为什么呀
回复

使用道具 举报

34

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
912
金钱
912
注册时间
2019-7-5
在线时间
189 小时
发表于 2020-12-22 09:01:42 | 显示全部楼层
xuyiiiii 发表于 2020-12-14 12:33
也解决了我的问题 感谢!这是为什么呀

看规格书
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2022-3-7
在线时间
9 小时
发表于 2022-3-9 20:38:45 | 显示全部楼层
楼主解决问题了吗,我也是这个样子,在nrf24l01_check那里检测不到2401
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2020-9-1
在线时间
5 小时
发表于 2022-4-2 23:08:49 | 显示全部楼层
我也是这样的,怎么办
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2020-9-1
在线时间
5 小时
发表于 2022-4-2 23:09:39 | 显示全部楼层
我也是这样的,怎么办
回复

使用道具 举报

5

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2021-8-27
在线时间
27 小时
发表于 2022-4-9 10:23:25 | 显示全部楼层
longbao 发表于 2022-4-2 23:09
我也是这样的,怎么办

用J-link仿真看一下那个数组buf里面的数据是否有发生改变,没有改变的话就是板子初始化的问题,否则就是你那个检测函数的逻辑问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 22:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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