完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
主要问题是把24l01初始化,接收模式,接收数据正常,但是配置成发送模式,数据一直发布出来,请问有没有遇到这样的情况或者指点一下
void Set_NRF24L01_TxMode(void) { RF24L01_CE_0 ; SPI_Write_Buf(FLUSH_TX,0x0,0x0); SPI_RW_Reg(WRITE_REG + CONFIG, 0x7E); // IRQ收发完成中断响应,16位CRC ,主接收 RF24L01_CE_1; delay_ms(3); //注意不能太小 }
//**************************************************************************************** //NRF24L01初始化 //***************************************************************************************/ void init_NRF24L01(void) { RF_PORT_INIT(); RF24L01_CE_0 ; // chip enable RF24L01_CSN_1; // Spi disable RF24L01_SCK_0; // Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址 //SPI_RW_Reg(WRITE_REG + EN_AA, 0x00); // 频道0自动 ACK应答允许 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 频道0自动 ACK应答允许 //DBG_TB( SPI_Read(EN_AA)); SPI_RW_Reg(WRITE_REG + SETUP_RETR,0x0F); //自动重发15次 //DBG_TB( SPI_Read( SETUP_RETR)); SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0E); // IRQ收发完成中断响应,16位CRC ,主接收 // DBG_TB( SPI_Read(CONFIG)); // RF24L01_CE_1 ; delay_ms(3); } 读写寄存器没有任何问题,就是发送有问题 |
|
相关推荐
5个回答
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void send_data(void) { power_off(); NRFWriteReg(WRITE_REG + EN_AA, 0x01); // Enable Auto.Ackipe0 NRFWriteReg(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0 NRFWriteReg(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans... NRFWriteReg(WRITE_REG + RF_CH, 1); // Select RF channel 40 /////pSysPara->Mod[11] /////设置信道 NRFWriteReg(WRITE_REG + RF_SETUP, 0x27); // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR NRFWriteReg(WRITE_REG + CONFIG, 0x0e); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled.. NRFWrite_Buf(WRITE_REG + TX_ADDR, Rx_Addr0, RX_ADDR_WITDH); // Writes TX_Address to nRF24L01 NRFWrite_Buf(WRITE_REG + RX_ADDR_P0, Rx_Addr0, RX_ADDR_WITDH); // RX_Addr0 same as TX_Adr for Auto.Ack NRFWrite_Buf(WR_TX_PLOAD, TxDate0, TX_DATA_WITDH); // Writes data to TX payload NRFWriteReg(WRITE_REG+STATUS,0xff); // 清除TX_DS或MAX_RT中断标志 SPICE=1; }
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2573 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2367 浏览 5 评论
3216 浏览 3 评论
2841 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2795 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
673浏览 1评论
911浏览 0评论
1032浏览 0评论
675浏览 0评论
507浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 11:03 , Processed in 1.377424 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号