完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
回复【楼主位】Yetu:
------------------------------- NRF24L01貌似容易死.不过我的代码里面有一处小BUG,不知道是不是和这里有关.就是SPI初始化,那个CPOL啥的设置错了.我在调试豪华版的代码的时候才发现这个问题.很怪异的.同样的设置,在mini板上可以用,在豪华版上就不能.调了我一天多....最后发现是SPI初始化有问题. |
|
|
|
|
|
那CPOL怎么设啊?我是这样的
SPI2->CR1|=0<<1; //空闲模式下SCK为1 CPOL=0 SPI2->CR1|=0<<0; //数据采样从第二个时间边沿开始,CPHA=0 |
|
|
|
|
|
SPI2->CR1|=0<<1; //空闲模式下SCK为1 CPOL=0
SPI2->CR1|=0<<0; //数据采样从第二个时间边沿开始,CPHA=0 你的是对的. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
请教原子,你指的“NRF24L01貌似容易死”是指死机么?我现在是通过不断切换NRF24L01的接收发送模式来实现双向通信的,但有的时候会出现接收端突然收不到发送端的数据的现象,经证实发送端还是正常在发送,应该是接收端的问题,此时必须断电重启才能恢复正常的通信,请问,遇到这种状态有没有什么解决办法? |
|
|
|
|
|
RCC->APB2ENR|=1<<3; //使能PORTB时钟
RCC->APB2ENR|=1<<5; //使能PORTD时钟 RCC->APB2ENR|=1<<8; //使能PORTG时钟 //这里pb12和pd2拉高,是为了防止互相影响 . //因为他们共用一个SPI口. GPIOB->CRH&=0XFFF0FFFF; GPIOB->CRH|=0X00030000; //PB12 推挽 GPIOB->ODR|=1<<12; //PB12上拉 防止W25X的干扰 GPIOD->CRL&=0XFFFFF0FF; GPIOD->CRL|=0X00000300; //PD2 推挽 GPIOD->ODR|=1<<2; //PD2上拉 禁止SD卡的干扰 GPIOG->CRL&=0X00FFFFFF; GPIOG->CRL|=0X33000000; //PG6 7 推挽 GPIOG->CRH&=0XFFFFFFF0; GPIOG->CRH|=0X00000008; //PG8 输入 GPIOG->ODR|=7<<6; //PG6 7 8 上拉 SPI2_Init(); //初始化SPI //针对NRF的特点修改SPI的设置 SPI2->CR1&=~(1<<6); //SPI设备使能 SPI2->CR1&=~(1<<1); //空闲模式下SCK为0 CPOL=0 SPI2->CR1&=~(1<<0); //数据采样从第1个时间边沿开始,CPHA=0 SPI2->CR1|=1<<6; //SPI设备使能 NRF24L01_CE=0; //使能24L01 NRF24L01_CSN=1; //SPI片选取消 |
|
|
|
|
|
原子哥中秋快乐哈,想问一个问题和楼上的差不多我的NRF24L01采用一主多从的,主机发送完后要切换到接收模式接收从机返回的信息,我现在的问题是发送完了之后切换回接收模式后,在发送就发送不出去了,如果只发送不切换回接收就没事,从机收到能够返回,每次都正常。不知道什么原因原子哥,谢谢 |
|
|
|
|
|
原子哥可不可以说一下这个错误在寄存器版本的demo的什么位置啊,我也遇到了相同的问题,我用stm32主动发送数据,单片机收到以后再转换成发送模式返回其他的数据,这时候stm32转为接收,有的时候单片机就会莫名其妙的收不到数据了,而且一直接收不到了,只有重新给单片机的nrf24l01重新上电才行。这是代码的问题啊,还是芯片的性能问题啊
我还听说好像nrf在转换模式的时候需要有一个时间间隙,是这样吗,如果有,至少多大才行啊?跪求原子哥解答,谢谢啊 |
|
|
|
|
|
原子哥可不可以说一下这个错误在寄存器版本的demo的什么位置啊,我也遇到了相同的问题,我用stm32主动发送数据,单片机收到以后再转换成发送模式返回其他的数据,这时候stm32转为接收,有的时候单片机就会莫名其妙的收不到数据了,而且一直接收不到了,只有重新给单片机的nrf24l01重新上电才行。这是代码的问题啊,还是芯片的性能问题啊 我还听说好像nrf在转换模式的时候需要有一个时间间隙,是这样吗,如果有,至少多大才行啊?跪求原子哥解答,谢谢啊 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
请问原子哥: 我现在也遇到了同样的问题。
DSP和STM32作为两边的MCU,作为 单纯的收或者发 可以。 但是我现在要自己控制发送与应答:DSP发完了,stm32收到后。双方切换收发模式,stm32发送,dsp能收到;但是DSP再次发送的时候,stm32收不到了------只有将stm32重新启动(调试环境)后,才能收到。 每次都是这样的。 请问问题可能是由什么原因造成的?谢谢。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
951 浏览 0 评论
如何使用STM32+nrf24l01架构把有线USB设备无线化?
3105 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
3007 浏览 5 评论
3876 浏览 3 评论
3325 浏览 8 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
1289浏览 1评论
1232浏览 0评论
920浏览 0评论
988浏览 0评论
952浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 12:25 , Processed in 1.225329 second(s), Total 115, Slave 96 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2102