天线|RF射频
直播中

刁文洁

7年用户 154经验值
私信 关注
[问答]

烧录原子哥的程序都无法识别NRF24L01模块是为什么

F4的探索者,烧录原子哥的程序都无法识别NRF24L01模块,改了波特率也不行啊!求帮忙是什么原因
我把
u8 NRF24L01_Check(void)
{
        u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};
        u8 Getbuff[5];
        u8 i;
        SPI1_SetSpeed(SPI_BaudRatePrescaler_8); //spiËù¶èÎa9Mhz£¨24L01μÄ×î′óSPIê±ÖóÎa10Mhz£©            
        NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//D′èë5¸ö×Ö½úμÄμØÖ·.        
        NRF24L01_Read_Buf(TX_ADDR,Getbuff,5); //¶á3öD′èëμÄμØÖ·  
        for(i=0;i<5;i++)
          {
                        if(Getbuff!=0XA5)
                                break;        
                }                        
        if(i!=5)return 1;//¼ì2a24L01′íÎó        
        else
                 return 0;                 //¼ì2aμ½24L01
}                  
改为
u8 NRF24L01_Check(void)
{
        u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};
        u8 Getbuff[5];
        u8 i;
        SPI1_SetSpeed(SPI_BaudRatePrescaler_16); //spiËù¶èÎa9Mhz£¨24L01μÄ×î′óSPIê±ÖóÎa10Mhz£©            
        NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//D′èë5¸ö×Ö½úμÄμØÖ·.        
        NRF24L01_Read_Buf(TX_ADDR,Getbuff,5); //¶á3öD′èëμÄμØÖ·  
        for(i=0;i<5;i++)
          {
                        if(Getbuff!=0XA5)
                                break;        
                }                        
        if(i!=5)return 1;//¼ì2a24L01′íÎó        
        else
                 return 0;                 //¼ì2aμ½24L01
}         
还是不行啊!         

回帖(8)

陈衡毅

2020-6-17 10:27:44
问题找到了!原来是ST-Link干扰!这是为什么?拔掉ST-Link就正常。不知道哪位遇到过没有?
举报

陈玲

2020-6-17 10:47:23
我也是,按你的方法果然正常了
1 举报

郝思雨

2020-6-17 10:55:13
新手求指导!你们都是用两块板子做的实验吗?没有两块开发板,应该怎么办呢
举报

李晓龙

2020-6-17 11:11:05
和jlink情况差不多
这是复位的问题,当JLINK在板子上连接的时候,断电情况下,会一直把RESET拉低,导致芯片一直处在复位状态,所以不能正常工作。把jlink和stm32板的的连接排线(jtag 接口)也拔掉,这个时候主板就可以工作了。
http://blog.csdn.net/dwf1354046363/article/details/79122035
举报

更多回帖

发帖
×
20
完善资料,
赚取积分