完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
以原子老师的接收数据函数为例,我的注释是否正确,请指教!谢谢!
u8 NRF24L01_TxPacket(u8 *txbuf) { u8 sta; SPI2_SetSpeed(SPI_SPEED_8) ;//spi速度为9Mhz(24L01的最大SPI时钟为10Mhz) NRF24L01_CE=0; //空闲时CE为0, NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//写数据到TX BUF 32个字节 NRF24L01_CE=1; //启动发送,根据NRF24L01时序CE上升沿发送 while(NRF24L01_IRQ!=0); //等待发送完成,“#define NRF24L01_IRQ PGin(8)”;“NRF24L01_IRQ!=0”等价于“NRF24L01_IRQ=1” /* 如果IRQ为高电平,说明没有产生中断。反之,如果IRQ为低电平,说明已经产生中断。通过向STATUS寄存器的TX_DS或MAX_RT位写1可以清除中断即IRQ恢复为高电平。 IRQ 引脚会在以下三种情况变低(即产生中断): Tx FIFO(发送缓存buf) 发完并且收到ACK(使能ACK 情况下) Rx FIFO(接收缓存buf) 收到数据,Rx FIFO已满 达到最大重发次数(对应STATUS寄存器的MAX_RT位),将MAX_RT位置1则清除中断。将IRQ接到外部中断输入引脚,通过中断程序进行处理。IRQ为低电平时说明已经产生了相应的中断,空闲时为高电平。 所以,如果发生了中断,则STATUS寄存器的TX_DS或MAX_RT位会置1,再次向STATUS寄存器的TX_DS或MAX_RT位写1 会使IRQ恢复为高电平 */ sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值,根据状态寄存器的状态值来操作 /* #define STATUS 0x07 //状态寄存器;bit0:TX FIFO满标志;bit3:1,接收数据通道号(最大:6);bit4,达到最多次重发,0x07是FIFO_STATUS的寄存器地址;本句中:读寄存器STATUS,将状态寄存器的值赋给sta #define FIFO_STATUS 0x17 //FIFO状态寄存器;bit0,RX FIFO寄存器空标志; //bit1,RX FIFO满标志;bit2,3,保留bit4,TX FIFO空标志;bit5,TX FIFO满标志; //bit6,1,循环发送上一数据包.0,不循环; */ NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志 /* 要写入的值是sta,“WRITE_REG+STATUS”是要写入的值的地址, “WRITE_REG”:#define WRITE_REG 0x20 //写配置寄存器,低5位为寄存器地址 如果发生了中断,则STATUS寄存器的TX_DS或MAX_RT位会置1,再次向STATUS寄存器的TX_DS或MAX_RT位写1 会使IRQ恢复为高电平即清除中断 */ if(sta&MAX_TX)//达到最大重发次数,本程序头文件将MAX_TX定义为0x10,如果达到最大重发次数,硬件会自动将MAX_RT位置1 { //“0001 0000”与STATUS寄存器的bit4(MAX_RT位)做与运算,如果MAX_RT位为1说明没有产生中断,即没有达到最大重发次数, NRF24L01_Write_Reg(FLUSH_TX,0xff);//清除TX FIFO寄存器 return MAX_TX; //没有达到最大重发次数 } if(sta&TX_OK) //头文件将TX_OK定义为0x20,对应STATUS的bit5位即TX_DS,若数据发送完成且收到应答信号后,硬件会自动将TX_DS位置1, {//根据说明书如果TX_DS为高电平,说明数据发送完成。数据发送完成则会产生中断向该位写1清除中断。 return TX_OK;//数据发送完成! } return 0xff;//其他原因发送失败 } |
|
相关推荐
1个回答
|
|
实践下吧
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2549 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2333 浏览 5 评论
3165 浏览 3 评论
2806 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2763 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
612浏览 1评论
859浏览 0评论
974浏览 0评论
626浏览 0评论
453浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 20:06 , Processed in 0.998152 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号