- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
nrf24l01对码思路
这样做如何:对码时,让RX发送码值,TX处于接收状态,TX将接收到的码值写入相应寄存器作为发射地址,RX发完后将发送的码值写入相应寄存器作为接收地址。对码就完成了。RX设置为接收状态,如果规定时间之内未收到TX的数据,那么可能对码不成功,可以继续对码。我犯了一个很坑爹的错误。其实我的对码功能早就实现了。只是不清楚对码完成时接收机是怎样的状态,搞了我一个月。 现在和大家分享一下我的代码吧。谢谢楼上提出意见的朋友。 一下关于24l01的代码原来用在STM32上面的,现在我用在stm8l上面所以代码做了修改。实现了对码的功能。 //24l01寄存器配置 ////////////////////////////////////////////////////////////////////////////////////////////////////////// //NRF24L01寄存器操作命令 #define?NRF24L01_READ_REG????????0x00??//读配置寄存器,低5位为寄存器地址 #define?NRF24L01_WRITE_REG???????0x20??//写配置寄存器,低5位为寄存器地址 #define?NRF24L01_RD_RX_PLOAD?????0x61??//读RX有效数据,1~32字节 #define?NRF24L01_WR_TX_PLOAD?????0xA0??//写TX有效数据,1~32字节 #define?NRF24L01_FLUSH_TX????????0xE1??//清除TX?FIFO寄存器.发射模式下用 #define?NRF24L01_FLUSH_RX????????0xE2??//清除RX?FIFO寄存器.接收模式下用 #define?NRF24L01_REUSE_TX_PL?????0xE3??//重新使用上一包数据,CE为高,数据包被不断发送. #define?NRF24L01_NOP?????????????0xFF??//空操作,可以用来读状态寄存器 ? //SPI(NRF24L01)寄存器地址 #define?CONFIG??????????0x00??//配置寄存器地址;bit0:1接收模式,0发射模式;bit1:电选择;bit2:CRC模式;bit3:CRC使能; ??????????????????????????????//bit4:中断MAX_RT(达到最大重发次数中断)使能;bit5:中断TX_DS使能;bit6:中断RX_DR使能 #define?EN_AA???????????0x01??//使能自动应答功能??bit0~5,对应通道0~5 #define?EN_RXADDR???????0x02??//接收地址允许,bit0~5,对应通道0~5 #define?SETUP_AW????????0x03??//设置地址宽度(所有数据通道):bit1,0:00,3字节;01,4字节;02,5字节; #define?SETUP_RETR??????0x04??//建立自动重发;bit3:0,自动重发计数器;bit7:4,自动重发延时?250*x+86us #define?RF_CH???????????0x05??//RF通道,bit6:0,工作通道频率; #define?RF_SETUP????????0x06??//RF寄存器;bit3:传输速率(0:1Mbps,1:2Mbps);bit2:1,发射功率;bit0:低噪声放大器增益 #define?STATUS??????????0x07??//状态寄存器;bit0:TX?FIFO满标志;bit3:1,接收数据通道号(最大:6);bit4,达到最多次重发 ??????????????????????????????//bit5:数据发送完成中断;bit6:接收数据中断; #define?MAX_TX?? 0x10??//达到最大发送次数中断 #define?TX_OK??? 0x20??//TX发送完成中断 #define?RX_OK??? 0x40??//接收到数据中断 #define?OBSERVE_TX??????0x08??//发送检测寄存器,bit7:4,数据包丢失计数器;bit3:0,重发计数器 #define?CD??????????????0x09??//载波检测寄存器,bit0,载波检测; #define?RX_ADDR_P0??????0x0A??//数据通道0接收地址,最大长度5个字节,低字节在前 #define?RX_ADDR_P1??????0x0B??//数据通道1接收地址,最大长度5个字节,低字节在
文档评论(0)