NRF2401收发程序只需要修改参数即可实现收发功能。
- void NRF_SendMode(void)
- {
- NRF_WriteBytes(TX_ADDR,TxAddr,5); //设置发送地址
- NRF_WriteReg(EN_AA,0x01); //允许P0自动应答
- NRF_WriteReg(EN_RXADDR,0x01); //P0接收
- NRF_WriteBytes(RX_ADDR_P0,RxAddr,5); //自动应答地址
- NRF_WriteReg(RF_CH,40); //频率
- NRF_WriteReg(RF_SETUP,0x07); //功率和速度
- NRF_WriteReg(CONFIG,0x0e); //发送模式
- }
- void NRF_RecvMode(void)
- {
- NRF_WriteReg(EN_RXADDR,0x01); //P0接收
- NRF_WriteBytes(RX_ADDR_P0,RxAddr,5); //接收地址
- NRF_WriteReg(EN_AA,0x01); //允许P0自动应答
- NRF_WriteReg(RF_CH,40); //频率
- NRF_WriteReg(RF_SETUP,0x07); //功率和速度
- NRF_WriteReg(RX_PW_P0,32); //数据有效宽度
- NRF_WriteReg(CONFIG,0x0f); //接收模式
- }
- //返回值 0 存在设备 1 设备有问题
- //参数 0 发送模式 1接收模式
- u8 NRF_CONFIG(u8 mode)
- {
-
- NRF_IO_Init();
- if(NRF_CheckDev()) //检测设备存在
- {
- return 0xff;
- }
- switch(mode)
- {
- case NRF_TX:NRF_SendMode();
- break; //发送
- case NRF_RX:NRF_RecvMode();
- break; //接收
-
- default: return 0xff;
- }
-
- return 0x00;
- }
- void NRF_SendData(u8 *sbuf,u8 len)
- {
- CE = 0;
- CSN = 0;
- if(len>32)len = 32; //限制最大32个字节
- NRF_SPI_RW(WR_TX_PLOAD); //发送fifo地址
- while(len--)
- {
- NRF_SPI_RW(*sbuf++);
- }
- CSN = 1;
- CE = 1;
- }
复制代码
51d单片机_NRF24L01程序源码(整理后).zip
(90.47 KB, 售价: 1 E币)
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|