天线|RF射频
直播中

徐丹

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

用24L01通信把SPI2换成SPI1后检测不到无线模块是为什么?

最近在搞STM32的SPI,想用24L01通信可是把SPI2换成SPI1后检测不到无线模块,程序是原来神州3号上面的,我给移植过来改了改

就是检测不到无线模块,现在用的STM32F107的板子,哪位大侠帮忙看看程序啊谢谢了



wuxaian.rar (9.4 MB )

回帖(27)

杨晓健

2020-4-27 04:02:30
发烧友大侠帮忙看看啊谢谢了
举报

李红霞

2020-4-27 04:26:24

你们的代码我对了差不多的,我又单步执行了下,发现在SPI1启动传输后开始进入检测那个函数,检测到的那神州3号板子和我这个板子区别在

u8 NRF24L01_Write_Buf(u8 regaddr, u8 *pBuf, u8 datalen)

{

        u8 status,u8_ctr;            

         Clr_NRF24L01_CSN;                                    //使能SPI传输

          status = SPI2_ReadWriteByte(regaddr);                //发送寄存器值(位置),并读取状态值

          for(u8_ctr=0; u8_ctr
          Set_NRF24L01_CSN;                                    //关闭SPI传输

          return status;                                       //返回读到的状态值

}        运行到status = SPI2_ReadWriteByte(regaddr);    这个地方后,写入那个寄存器地址0X30后,神州3号SPI2返回的值是0x000E而我那个107的板子返回的值是0X001C的从这开始就不一样了

                                       >
举报

高建明

2020-4-27 04:44:26
哦哦,看看是不是SPI的初始化有问题. 
举报

赵群山

2020-4-27 05:03:12

原子大哥想问下你们的代码在什么地方呢
举报

更多回帖

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