基于nrf24l01的无线通信模块设计报告正文内容摘要:
0x04 // 自动重发功能设置 define RF_CH 0x05 // 工作频率设置 define RF_SETUP 0x06 // 发射速率、功耗功能设置 define STATUS 0x07 // 状态寄存器 define OBSERVE_TX 0x08 // 发送监测功能 define CD 0x09 // 地址检测 define RX_ADDR_P0 0x0A // 频道 0 接收数据地址 define RX_ADDR_P1 0x0B // 频道 1 接收数据地址 define RX_ADDR_P2 0x0C // 频道 2 接收数据地址 define RX_ADDR_P3 0x0D // 频道 3 接收数据地址 define RX_ADDR_P4 0x0E // 频道 4 接收数据地址 define RX_ADDR_P5 0x0F // 频道 5 接收数据地址 define TX_ADDR 0x10 // 发送地址寄存器 define RX_PW_P0 0x11 // 接收频道 0 接收数据长度 define RX_PW_P1 0x12 // 接收频道 0 接收数据长度 define RX_PW_P2 0x13 // 接收频道 0 接收数据长度 define RX_PW_P3 0x14 // 接收频道 0 接收数据长度 define RX_PW_P4 0x15 // 接收频道 0 接收数据长度 第 21 页 define RX_PW_P5 0x16 // 接收频道 0 接收数据长度 define FIFO_STATUS 0x17 // FIFO 栈入栈出状态寄存器设置 //************************************************************************************** // 函数声明******************************************************************************* /****************************************************************************************/ void write_(unsigned char )。 void write_date(unsigned char date)。 void Delay(unsigned int s)。 void inerDelay_us(unsigned char n)。 void init_nRF24L01(void)。 unsigned int SPI_RW(unsigned int uuchar)。 unsigned char SPI_Read(unsigned char reg)。 void SetRX_Mode(void)。 void tetRX_Mode(void)。 unsigned int SPI_RW_Reg(unsigned char reg, unsigned char value)。 unsigned int SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars)。 unsigned char nRF24L01_RxPacket(unsigned char*rx_buf)。 void nRF24L01_TxPacket(unsigned char *tx_buf)。 //*****************************************长延时 void Delay(unsigned int s) { unsigned int i。 for(i=0。 is。 i++)。 for(i=0。 is。 i++)。 } //***************************************************************************** bdata sta。 //状态标志 sbit RX_DR =sta^6。 第 22 页 sbit TX_DS =sta^5。 sbit MAX_RT =sta^4。 /***************************************************************************** /*延时函数 */ void inerDelay_us(unsigned char n) { for(。 n0。 n) _nop_()。 } //*************************************************************************** /*lcd1602 写命令 //***************************************************************************/ void write_(unsigned char ) { lcdrs=0。 P0=。 Delay(5)。 lcden=1。 Delay(5)。 lcden=0。 } //**************************************************************************** /*lcd1602 初始化 //****************************************************************************/ void init() { lcden=0。 write_(0x38)。 第 23 页 write_(0x0c)。 write_(0x06)。 write_(0x01)。 } //*************************************************************************** /*lcd1602 写数据 //***************************************************************************/ void write_date(unsigned char date) { lcdrs=0。 P0=date。 Delay(5)。 lcden=1。 Delay(5)。 lcden=0。 } //***************************************************************************** /*nRF24L01 初始化 //*****************************************************************************/ void init_nRF24L01(void) { inerDelay_us(100)。 CE=0。 // chip enable CSN=1。 // Spi disable SCK=0。 // Spi clock line init high } /****************************************************************************** 第 24 页 /*函数: uint SPI_RW(uint uchar) /*功能: nRF24L01 的 SPI 写时序 /**************************************************************************/ unsigned int SPI_RW(unsigned int uuchar) { unsigned int bit_ctr。 for(bit_ctr=0。 bit_ctr8。 bit_ctr++) // output 8bit { MOSI = (uuchar amp。 0x80)。 // output 39。 uchar39。 , MSB to MOSI uuchar = (uuchar 1)。 // shift next bit into MSB.. SCK = 1。 // Set SCK high.. uuchar |= MISO。 // capture current MISO bit SCK = 0。 // ..then set SCK low again } return(uuchar)。 // return read uchar } /****************************************************************************** /*函数: uchar SPI_Read(uchar reg) /*功能: nRF24L01 的 SPI 时序 /*****************************************************************************/ unsigned char SPI_Read(unsigned char reg) { unsigned char reg_val。 CSN = 0。 // CSN low, initialize SPI munication... SPI_RW(reg)。 // Select register to read from.. reg_val = SPI_RW(0)。 // ..then read registervalue CSN = 1。 // CSN high, terminate SPI munication return(reg_val)。 // return register value } /************************************************************************** 第 25 页 ***/ /*功能: nRF24L01 读写寄存器函数 /*****************************************************************************/ unsigned int SPI_RW_Reg(unsigned char reg, unsigned char value) { unsigned int status。基于nrf24l01的无线通信模块设计报告正文
相关推荐
事件调度器和数据通道上的基本网络组件对象都使用 C++编写,这些对象通过 TclCL 映射对 OTcl 解释器可见。 NS2 可以说是 OTcl 的脚本解释器,它包含模拟事件高度器、 网络组件对象库等。 事件调度器控制模拟进程,在适当时间激活事件队列中的当前事件,并执行该事件。 网络组件模拟网络设备或节点的通信,它们通过制定模拟场景和模拟进程,交换特定的 分组来模拟真实网络情况
果有故障发生,阻碍分组到达远程系统,或者服务器不接受连接,客户都会得到通知 :数据可靠的交付,故障而不能交付,发送方会得到通知;具有流控的传输;双工的传输,单个 TCP 连接允许同时双向传送数据流模式, TCP从发送方到接收方发送没有报文边界的字节。 如果 IP 数据包中有已经封好的 TCP 数据包,那么 IP 将把它们向上传送到 TCP 层。 TCP 将包排序并进行错误检查
搭建网上交易和 管理 平台。 [关键词]网上购物 php MySQL 计算机 与网络 — 638— 科技 信息 是通过学生对内容的访问情况进行学习态度的反 馈或者通过对平台考试结果的数据分析,生成统计报表。 教师通过教学平台控制或引导学生的学习进程。 根据学生学习 情况、硬指标,对课程内容进行选择性发布,引导学生进行自主学习,避 免学生在丰富的教学资源中迷失方向。 四、结束语
写作 –独家原创 16 / 59 各位领导、各位同事: 大家下午好。 我是 XX,今天演讲的题目是《不忘初心,方得始终》。 最近,我总是在回忆,想念平淡而又充实的大四。 去年的今天,我和所有小伙伴一样,纠结于 考研、工作。 那时候,总觉得时间还很长,足够慢慢去挥霍,也想象不了一年后的今天。 我们常常因为走得太远和时光老去,就忘记当初为什么出发。 我们是新考入的财务工作者,更因铭记习总书记 “20
用异步式 I/O 与事件驱动的架构设计。 传统架构对于高并发的解决方案是采用多线程模型,也就是一个系统线程处理一个业务逻辑,通过系统线 程切方式弥补同步式 I/O 的时间开销。 采用的是单线程模型通过异步式的请求方式处理 I/O 调用,减少了切换上下文次数所造成的开销。 运行的过程中将管理一个事件堆栈,不断地循环执行事件然后等待下一个事件的触发。 异步式 I/O 请求完成后将被推送到事件队列
2 个字节 12 RX_PW_P1 Reserved 7:6 00 R/W 默认为 00 RX_PW_P1 5:0 0 R/W 数据通道 1 接收数据有效宽度: 0:无效 1: 1 个字节 „„ 32: 32 个字节 13 RX_PW_P2 Reserved 7:6 00 R/W 默认为 00 RX_PW_P2 5:0 0 R/W 数据通道 2 接收数据有效宽度: 0:无效 1: 1 个字节