完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我把Mini的程序移植到了C8T6,但一直显示无法成功通信。看了下论坛的帖子,把发送端的程序改成了如下语句
SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); //失能通道0自动应答 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x00); //失能接收通道0 SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00); //失能自动重发 显示发送端可以成功发送数据,说明发送端没问题。但是接送端也同样按照那个帖子改成 SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); //失能通道0自动应答 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); //接收要使能接收通道0 却没有办法接收数据,但是检测确是通过的。瞅了半天也不知道是哪里出了问题,求助大佬们这是怎么回事? |
|
相关推荐
3个回答
|
|
我们例程, 你试试 不改驱动,改接口代码即可。
|
|
|
|
代码如下
[C] 纯文本查看 复制代码 #include "24l01.h"#include "spi.h"const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//SPI写寄存器//reg:指定寄存器地址//value:写入的值u8 NRF24L01_Write_Reg(u8 reg,u8 value){ u8 status; NRF24L01_CSN=0; //使能SPI传输 status =SPI1_ReadWriteByte(reg);//发送寄存器号 SPI1_ReadWriteByte(value); //写入寄存器的值 NRF24L01_CSN=1; //禁止SPI传输 return(status); //返回状态值}//读取SPI寄存器值//reg:要读的寄存器u8 NRF24L01_Read_Reg(u8 reg){ u8 reg_val; NRF24L01_CSN = 0; //使能SPI传输 SPI1_ReadWriteByte(reg); //发送寄存器号 reg_val=SPI1_ReadWriteByte(0XFF);//读取寄存器内容 NRF24L01_CSN = 1; //禁止SPI传输 return(reg_val); //返回状态值} //在指定位置读出指定长度的数据//reg:寄存器(位置)//*pBuf:数据指针//len:数据长度//返回值,此次读到的状态寄存器值 u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len){ u8 status,u8_ctr; NRF24L01_CSN = 0; //使能SPI传输 status=SPI1_ReadWriteByte(reg);//发送寄存器值(位置),并读取状态值 for(u8_ctr=0;u8_ctr |
|
|
|
咦就好了!谢谢原子哥了,顺便再问问现在收发可以正常进行了,但是时不时就会出现丢包的情况,还有就是会有个一两秒的延迟,这个情况有办法改善吗
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2550 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2335 浏览 5 评论
3166 浏览 3 评论
2807 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2767 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
619浏览 1评论
863浏览 0评论
977浏览 0评论
632浏览 0评论
458浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 16:07 , Processed in 1.121831 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号