搜档网
当前位置:搜档网 › nRF24L01寄存器手册

nRF24L01寄存器手册

NRF24L01发送程序

#include #include typedef unsigned int uint; typedef unsigned char uchar; #define TX_ADDR_WITDH 5//发送地址宽度设置为5个字节 #define RX_ADDR_WITDH 5//接收地址宽度设置为5个字节 #define TX_DATA_WITDH 8// #define RX_DATA_WITDH 8 #define R_REGISTER 0x00 // 读寄存器 #define W_REGISTER 0x20 // 写寄存器 #define R_RX_PLOAD 0x61 // 读RX FIFO有效数据,1-32字节,当读数据完成后,数据被清除,应用于接收模式 #define W_TX_PLOAD 0xA0 // 写TX FIFO有效数据,1-32字节,写操作从字节0开始,应用于发射模式 #define FLUSH_TX 0xE1 // 清除TX FIFO寄存器,应用于发射模式 #define FLUSH_RX 0xE2 // 清除RX FIFO寄存器,应用于接收模式 #define REUSE_TX_PL 0xE3 // 重新使用上一包有效数据,当CE为高过程中,数据包被不断的重新发射 #define NOP 0xFF // 空操作,可以用来读状态寄存器 #define CONFIG 0x00 // 配置寄存器 #define EN_AA 0x01 // “自动应答”功能寄存 #define EN_RX_ADDR 0x02 // 接收通道使能寄存器 #define SETUP_AW 0x03 // 地址宽度设置寄存器 #define SETUP_RETR 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 // 数据通道1有效数据宽度设置寄存器 #define RX_PW_P2 0x13 // 数据通道2有效数据宽度设置寄存器 #define RX_PW_P3 0x14 // 数据通道3有效数据宽度设置寄存器 #define RX_PW_P4 0x15 // 数据通道4有效数据宽度设置寄存器 #define RX_PW_P5 0x16 // 数据通道5有效数据宽度设置寄存器

NRF24L01无线模块收发程序(实测成功 多图)

NRF24L01无线模块收发程序(实测成功多图) 本模块是NRF24L01无线传输模块,用于无线传输数据,距离不远,一般只是能够满足小距离的传输,目测是4-5m,价格一般是4元左右,可以方便的买到。 51最小系统学习板就可以,当时是用了两块学习板,一块用于发送,一块用于接收。 小车也是比较容易购到的,四个端口控制两个电机,两个控制一个电机,当两个端口高低电平不同时电机就会转动,即为赋值1和0是电机转动,赋值可以用单片机作用,当然这是小车启动部分,前进后退左转右转就是你赋值0和1的顺序问题了。

整体思路是用发射端的按键控制小车,即为按键按下就前进,再按其他按键实现其他功能,本次程序是在用NRF24L01发射数据在接收端用1602显示的基础上改变。 下面是程序源码(有好几个文件,分别创建) ////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////// #include #include #include'1602.h' #include'delay.h' #include 'nrf24l01.h' #define uint unsigned int #define uchar unsigned char uint Weight_Shiwu=1234; unsigned char KeyScan(void);//键盘扫描 // unsigned char KeyScan(void);//键盘扫描 //#define KeyPort P0 sbit KEY1 = P0^0; sbit KEY2 = P0^1; sbit KEY3 = P0^2; sbit KEY4 = P0^3; sbit KEY5 = P0^4; void main() { // char TxDate[4]; // LCD_Init(); //初始化液晶屏 // LCD_Clear(); //清屏

NRF24L01无线模块收发程序例程

//下面是接收的NRF24L01的程序。 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include #include "nrf24l01.h" #include #define uchar unsigned char #define uint unsigned int sbit IRQ =P1^2;//输入 sbit MISO =P1^3; //输入 sbit MOSI =P1^1;//输出 sbit SCLK =P1^4;//输出 sbit CE =P1^5;//输出 sbit CSN =P1^0;//输出 uchar RevTempDate[5];//最后一位用来存放结束标志 uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址 /*****************状态标志*****************************************/ uchar bdata sta; //状态标志 sbit RX_DR=sta^6; sbit TX_DS=sta^5; sbit MAX_RT=sta^4; /*****************SPI时序函数******************************************/ uchar NRFSPI(uchar date) { uchar i; for(i=0;i<8;i++) // 循环8次 { if(date&0x80) MOSI=1; else MOSI=0; // byte最高位输出到MOSI date<<=1; // 低一位移位到最高位 SCLK=1; if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据date|=0x01; // 读MISO到byte最低位 SCLK=0; // SCK置低 } return(date); // 返回读出的一字节 } /**********************NRF24L01初始化函数*******************************/ void NRF24L01Int() {

生物软件使用说明书大全

生物软件使用说明书大全 生物软件使用说明书大全 转自: SPSS10教程 SAS6.12统计教程 统计软件SAS 8.2教程 Stata统计学教程入门 Eviews3.1使用入门教程1 软件中文使用说明书大全 ? ·NoteExpress初级教程(step by step) ? ·常用生物软件简介汇总(window 版) ? ·STATISTICA/w 5.0及其在医学中的应用 ? ·利用Excel处理统计数据 ? ·数据分析、科技绘图的必备工具-Microcal O () ? ·Band Leader中文使用说明书 ? ·BioEdit中文使用说明书下载 ) ? ·Cn3D中文说明书下载 ? ·Gel-PRO ANALYZER凝胶定量分析软件演示操作 ) ? ·Gene Construction Kit中文使用手册 ) ? ·aminoXpress中文使用说明书 ) ? ·DNAtools中文说明书下载 ? ·综合性序列分析软件DNAStar中文使用说明书 ) ? ·Reference Manager 10中文使用说明书 ? ·Genamics中文使用说明书) ? ·Vector NTI9.0中文使用说明书 ) ? ·Winplas中文使用说明书 ? ·RNA Structure 3中文使用说明书) ? ·Primer Premier中文使用说明) ? ·进化树分析及相关软件使用说明) ? ·观察生物分子的窗口——RasMol 2.6 ) ? ·RNAdraw1.1b2功能介绍) ? ·SEQUIN3使用中文说明书 ? ·JELLYFISH 1.3 使用手册) ? ·Omiga使用中文说明书 ? ·Excel 提速12招 ? ·修复受伤的Excel文件 ? ·用好Word 2003的比较功能 ? ·抓图高手:SnagIt使用技巧3例 ? ·DNASTAR-MAPDRAW软件使用教程[图解] ? ·DNASTAR-EDITSEQ软件使用教程[图解] ? ·核酸序列分析软件DNAssist1.0教程[图解] ? ·BandScan使用教程[图解] ? ·蛋白序列分析软件包ANTHEPROT 4.3中文说明书

NRF24L01无线模块C语言程序

NRF24L01无线模块C语言程序 24MHz晶振 #include #include #include #include #include #include #define U8 unsigned char #define U16 unsigned int #define TX_ADDR_WITDH 5 //发送地址宽度设置为5个字节 #define RX_ADDR_WITDH 5 //接收地址宽度设置为5个字节 #define TX_DATA_WITDH 1//发送数据宽度1个字节 #define RX_DATA_WITDH 1//接收数据宽度1个字节 #define R_REGISTER 0x00//读取配置寄存器 #define W_REGISTER 0x20//写配置寄存器 #define R_RX_PAYLOAD 0x61//读取RX有效数据 #define W_TX_PAYLOAD 0xa0//写TX有效数据 #define FLUSH_TX 0xe1//清除TXFIFO寄存器 #define FLUSH_RX 0xe2//清除RXFIFO寄存器 #define REUSE_TX_PL 0xe3//重新使用上一包有效数据 #define NOP 0xff//空操作 #define CONFIG 0x00//配置寄存器 #define EN_AA 0x01//使能自动应答 #define EN_RXADDR 0x02//接收通道使能0-5个通道 #define SETUP_AW 0x03//设置数据通道地址宽度3-5 #define SETUP_RETR 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接收地址

Gblocks使用说明书-by florawz1

Gblocks使用说明书(by florawz) 1.首先打开软件,进入主页面 2.输入O ,然后回车,对话框显示输入一个文件或路径 此时将比对好的(.fas)文件拖入对话框。对话框即出现该文件的路径(如图) 按回车,即导入该序列。对话框上部出现下列信息 3.快速比对:输入G,然后回车。在原比对文件所在文件夹内即可出现Gblocks 已经处理好的文件

.fas-gb文件可用Bioedit和DNAMAN打开。 打开.htm文件,可查看可视化的处理结果(如图) 4.主菜单: t. 指定的序列类型(可以是蛋白质,DNA或者密码子)。 输入一个t,回车。序列类型改为Condons 再输入一个t,回车。序列类型改为DNA(如此循环修改)

o. 打开一个文件。必须为 NBRF/PIR 或 FASTA 格式 ,序列长度不限。打开 NBRF/PIR-格式的序列时,在序列备注第一行要注明序列类型 如: >P1;byflorawz ------MEYLLQEYLPILVFLGMASALAIVLILAAAVIAVRN--PDPEKVSAYECGFNAF D-DARMKFDVRFYLVSILFIIFDLEVAFLFPWAVSFASLS-DVAFWGLMVFLAVLTVGFA YEWKKGALEWA----------------------* (fas格式则不需要,第一行直接为>byflorawz即可) 注意:在使用Glocks分析前,序列缺口必须先消除。 在将比对文件拖进改软件时,要去路径掉末尾的空格。 打开多个文件 :必须建立一个path文件。输入各个相关文件的路径,在安装好的文件包内可以看到一个"paths"范例,用word打开此文件,即可看到各个文件的所在路径(如图) 多条比对序列的处理:如果所有的比对文件的路径都在一个paths文件,且各个比对文件的序列条数,以及物种的顺序都是相同的,那么这些比对文件在最后的结果中可以连接起来。如果各个比对文件的序列条数不同,那么也可以一起处理,但是最后不能连接。 b. 显示 Block 限制性参数 (详情见下页). s. 显示保存菜单(详情见下页). g. 处理计算 q. 退出 5.限定性参数菜单

NRF24L01功能使用文档

NRF24L01使用文档 基于c8051f330单片机

目录 芯片简介 (3) 1 NRF24L01功能框图 (4) 2 NRF24L01状态机 (5) 3 Tx与Rx的配置过程 (7) 3.1 Tx 模式初始化过程 (7) 3.2 Rx模式初始化过程 (8) 4控制程序详解 (9) 4.1 函数介绍 (9) 4.1.1 uchar SPI_RW(uchar byte) (9) 4.1.2 uchar SPI_RW_Reg (uchar reg, uchar value) (10) 4.1.3 uchar SPI_Read (uchar reg); (10) 4.1.4 uchar SPI_Read_Buf (uchar reg, uchar *pBuf, uchar bytes); (11) 4.1.5 uchar SPI_Write_Buf (uchar reg, uchar *pBuf, uchar bytes); (11) 4.1.6 void RX_Mode(void) (12) 4.1.7 void TX_Mode(void) (13) 4.2 NRF24L01相关命令的宏定义 (13) 4.3 NRF24L01相关寄存器地址的宏定义 (14) 5 实际通信过程示波器图 (16) 1)发射节点CE与IRQ信号 (17) 2)SCK与IRQ信号(发送成功) (18) 3)SCK与IRQ信号(发送不成功) (19)

芯片简介 NRF24L01是NORDIC公司最近生产的一款无线通信通信芯片,采用FSK调制,内部集成NORDIC自己的Enhanced Short Burst 协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2M(bps)。NORDIC公司提供通信模块的GERBER文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留5个GPIO,1个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU系统构建无线通信功能。

NRF24L01参考程序(包含多个实例)

(相关人员如觉得本人水平低下,还请见谅) Nrf24L01的使用程序和使用方法和简单操作: 功能: 无线对发程序。两个模块a,b,实现按下一个按键,会在对方的数码管上显示3或4,在本机上显示1,2。 当一个模块,比如a模块。当两个按键按下其中一个,则会在另一个模块b上显示数字3,4(具体根据按下哪个按键)。以上功能描述,B模块按键按下,如同a模块一样的功能,不做系统性描述了。 下面给出程序中几个地方的解释: #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留 类似这种的描述,可以等同于READ_REG =0x00;这个是经过实际程序测试出来的,比如 以下程序: #include #define k 0xfe void main() { P1=k; } 则会出现此类结果:

MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI uchar = (uchar << 1); // shift next bit into MSB.. SCK = 1; // Set SCK high.. uchar |= MISO; // capture current MISO bit SCK = 0; 此处为spi的核心,是spi协议的编程,其中uchar |= MISO; 表示uchar |= MISO | uchar; MOSI = (uchar & 0x80);其中0x80是1000 0000,与上uchar,这种&,是按位与,故可以从uchar提取出一个电平给mosi。 MOSI = (uchar & 0x80); // output 'uchar', MSB to MOSI uchar = (uchar << 1); 这两句组合起来用,就实现了把uchar编程8位2进制数后的每一位都可以发送给mosi;Uchar的只待对象,就是上面的诸如#define FLUSH_TX 0xE1 这样的数,或者是相关的发送数据。 *pBuf这个并不是一个主要的问题,实际这个是涉及指针问题的,带*的跟地址有关系,但是我们其实不需要很关心编译的时候数据被具体存入哪个地址,即使是很重要的数据。 void init_NRF24L01(void) { inerDelay_us(100); CE=0; // chip enable CSN=1; // Spi disable SCK=0; // 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, 0x01); // 频道0自动ACK应答允许 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 } 在整个初始化中我们看到: CE=0; // chip enable CSN=1; // Spi disable 这是设置整个的状态。如过状态设置成待机,则引脚可能变为高阻。(以上并非全部引脚)

nrf24l01无线模块NRF24L01模块收发c程序

//许多人都在找nrf24l01无线模块的c程序;我以前刚接触无线//时用的就是nrf24l01模块;搜索了许多程序有很多都没法直接用;甚至还怀疑模块是不是被我搞坏了;拿去让别人检测模块又是好的;为避免大家走弯路;我将我的程序发出来供大家参考; 这是nrf24l01无线模块pcb图; 下面有Nrf24l01无线模块的收发c程序;以下程序经本人亲自测试;绝对能用!! 请注意以下几点: 1、24L01模块的电源电压是否为3V-3.6V之间; 2、如果您用的单片机是5V的话,请在IO口与模块接口之间串一个1K电阻; 3、检查模块的GND是否与单片机的GND相连接 4、先用程序进行调试,如果IO口不同,请更改IO口或相关时序; 5、如果是51系列单片机,晶振请选用11.0592M Hz; 模块供电最好用asm1117 5v转3.3v 稳压 测试单片机是stc89c52;at89c52 通用; 收发一体;

一大截不废话了;上程序;此程序是按键控制led;当按下s的时候对应接受的led会闪闪发光;很简单的~如果要实现其他更先进的功能;自己发掘吧~~ 务必将硬件连接正确;否则;它不会工作的~~当然做什么都要严谨~~错一点就差大了~~ 《《收发一体程序》》 #include #include typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01端口定义

*************************************** sbit M ISO =P1^3; sbit M OSI =P1^4; sbit SCK =P1^2; sbit CE =P1^1; sbit CSN =P3^2; sbit IRQ =P3^3; //************************************按键*************************************************** sbit KEY=P2^0; //***************************************************************************** sbit led=P2^1; //*********************************************NRF24L01*********************** ************** #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 20 // 20 uints TX payload #define RX_PLOAD_WIDTH 20 // 20 uints TX payload uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************NRF24L01寄存器指令******************************************************* #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留 //*************************************SPI(nRF24L01)寄存器地址**************************************************** #define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 // 自动应答功能设置 #define EN_RXADDR 0x02 // 可用信道设置 #define SETUP_AW 0x03 // 收发地址宽度设置 #define SETUP_RETR 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接收数据地址

常见生物软件使用技巧汇集

常见生物软件使用技巧汇集 Q1.怎么查找序列保守区? A1:很多人查找序列保守区,一般通过序列多重比对后,肉眼判断序列保守区,但此法难免太主观,不具重复性,且选择的保守区无法受统计上的显著性检验。其实,实现这一目的,可以使用DnaSP--> “Analysis” -->“Conserved DNA regi on”...

Q2. 多个FASTA格式保存的单条序列如何批量快速合并为一个文件? A2 :一条条添加,费时费劲,且容易出错。解决的办法有两个:一是可以通过DNAMAN的“多重序列比对”后导出功能,即:添加序列所在的目录,或全选相关文件,进行多重比对,导出Clustal aln 文件,然后再转换为FASTA;二是使用我们2012年新开发的序列火枪手套件的“Seq Merger.exe” 即可快速实现合并。 Q3. 如何解决Clustalx 多重比对(*.Aln格式)后转为MEGA 格式时提示出错的问题? A3:检查所转换MEGA 的*.meg 文件最后几行内容是否有*号,全部删减之即可。因为Clustalx 多重比对后,程序会自动添加一致序列。

Q4. 为什么DNAMAN软件的很多功能菜单都显示无法使用? A4:DNAMAN软件的精华在于通道(Channel)的应用,遇到功能菜单呈灰度无法使用时,不妨将序列载入通道后再试试... Q5. 如何让多重比对美观显示又不占篇幅? A5:推荐使用Web Logo (https://www.sodocs.net/doc/5814159211.html,/logo.cgi)或Sequence L ogo之类的在线工具处理。其实这类工具还有一个妙用-可用于设计简并引物,简并序列一目了然,如下图的第7个碱其位点,G/A=R。 Q6. 如何在多重比对序列的上方显示对应的蛋白质二级结构? A6:使用ESPript(http://espript.ibcp.fr/ESPript/cgi-bin/ESPript.cgi)对多重比对序列着色的同时,上传预测的蛋白质结构文件*.pdb 即可,效果如下图所示,详见《马铃薯Y病毒pipo基因的分子变异及结构特征分析》一文。具体操作方法可以参考《ESpript 美化多重比对序列图解(By Raindy) 》。

NRF24L01接收程序(可用)

////************************************接收程序******************************************************// #include #include typedef unsigned char uchar; //****************************************NRF24L01端口定义*************************************** sbit M ISO =P1^5; sbit M OSI =P1^1; sbit SCK =P1^6; sbit CE =P1^7; sbit CSN =P1^2; sbit IRQ =P1^0; //***************************************************************************** ************** #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 32 // 20 uints TX payload #define RX_PLOAD_WIDTH 32 // 20 uints TX payload uchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址 uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址 //***************************************NRF24L01寄存器指令*******************************************************

PAML 中文说明

PAML: 最大似然法分析系统发育Phylogenetic Analysis by Maximum Likelyhood 版本:4.3(2009年9月) Ziheng Y ang 马向辉翻译

1、概述 PAML (for Phylogenetic Analysis by Maximum Likelihood) 是一个用最大似然法分析蛋白质或DNA序列系统发育的一个程序包。 1.1 PAML 文件: 除了这个手册以外,以下资源也需要注意: PAML网站:https://www.sodocs.net/doc/5814159211.html,/software/PAML.html。在这个网站上有PAML的下载以及编译程序; PAML FAQ页面:https://www.sodocs.net/doc/5814159211.html,/software/pamlFAQs.pdf; PAML讨论群:https://www.sodocs.net/doc/5814159211.html,/phpBB2/,在这里你可以提出你的问题,或者提出你发现的漏洞。 1.2 PAML 可以做些什么? PAML 的最新版本包含一下几个程序模块:baseml, basemlg, codeml, evolver, pamp, yn00, mcmctree, 以及chi2。其中最常用的模块的介绍可以参考杨子恒教授2007年发表的文章。模块运行中用到的计算、统计方法在杨子恒教授的书中有详细的介绍。模块的主要作用包括:计算以及检测系统发育树(baseml 和codeml); 计算复杂的碱基替代或者氨基酸替代模型中的参数,如不同位点间不同速率的模型或多个基因或者位点的综合分析模型(baseml和codeml); 用似然比例检测比较几个模型(baseml,codeml以及chi2); 用全局分子钟或者局部分子钟估算分歧时间(baseml和codeml); 用最大似然法重建祖先氨基酸、核苷酸序列以及密码子模型(baseml和codeml); 用蒙特卡洛模拟生成氨基酸、密码子

Phylip中文使用说明

Phylip中文使用说 Introduction PHYLIP程序的运行 这些程序要按照一定的顺序来运行。前一个程序的输出作为下一个程序的输入。如何合理的组合这些程序也很关键。 在windows中,PHYLIP程序可通过双击程序的图标来启动,或是在命令行中输入程序的名称来启动。我们建议使用命令行方式,因为你也许能看到一些错误提示。它启动的方是:开始->所有程序->附件->命令提示符。 大部分PHYLIP程序运行方法相同。程序把infile作为默认输入文件,如果没有找到它将要求用户输入数据文件的名称。输出结果写在 outfile文件中。有些则写在outfile和outtree或plotfile中。 因为大部分程序使用默认的输入和输出文件名,所以在下一步的分析前,要重命名你想保存的文件。比如,你用Dnadist得到了距离矩阵(outfile),你还想试试不同的设置,那么再做矩阵计算前,你可以把outfile重命名为dnadist_outfile,或其它名称,这样你就能区别两次的结果了。 程序 重抽样工具 该程序生成一系列的特殊的随机样本,保存在outfile中。这些样本在后继的分

析中作为一个序列对文件,要设置选项M(use multiple datasets)。 Seqboot 生成随机样本,用bootstrap和jack-knife方法。 距离方法: 顺序使用这些程序。首先,用dandist或protdist程序计算序列比对结果的距离矩阵。接着这个矩阵被fitch、kitsch或 neighbor程序转换为树。Dandist 和protdist程序的输出文件是outfile。在运行fitch、kitsch或neighbor 前,outfile应该重命名为infile或另外的名字。fitch、kitsch和neighbor的输出文件是outfile和outtree。 Dnadist DNA距离矩阵计算器 Protdist 蛋白质距离矩阵计算器 Fitch 没有分子时钟的Fitch-Margoliash树 Kitsch 有分子时钟的Fitch-Margoliash树 Neighbor Neighbor-Joining和UPGMA树 基于字符的方法 这些程序读入一个序列对,它们的输出文件是outfile和outtree。 Dnapars DNA简约法 Dnapenny DNA简约法using branch-and-bound Dnaml DNA最大似然,无分子时钟

2.4无线NRF24L01收发测试程序

//发射程序 //测试通过STC90C58AD与STC89C52 无线NRF20L01 //功能按一个按键接收模块相对应的LED亮松开LED灭 /****************************************************************************** **** TxBuf[]存放的是发送的数据。并且此数据被发送时,是将这个数组的数全部发送的。对方也全部接收。 RxBuf[]接收数组,用于存放对方发来的数据。 SetRX_Mode(); nRF24L01_RxPacket(RxBuf); 当主程序中包含这两个子函数时,且这时某个数据被发送过来,则会被接收到。且被存放到了RxBuf[]; 反之包含nRF24L01_TxPacket(TxBuf);且TxBuf[]已经存入你想要的数据的时候,这个数据将被发送。 ******************************************************************************* ***********/ #include #include typedef unsigned int uint; typedef unsigned char uchar; #define TX_ADDR_WITDH 5//发送地址宽度设置为5个字节 #define RX_ADDR_WITDH 5//接收地址宽度设置为5个字节 #define TX_DATA_WITDH 8// #define RX_DATA_WITDH 8 #define R_REGISTER 0x00 // 读寄存器 #define W_REGISTER 0x20 // 写寄存器 #define R_RX_PLOAD 0x61 // 读RX FIFO有效数据,1-32字节,当读数据完成后,数据被清除,应用于接收模式 #define W_TX_PLOAD 0xA0 // 写TX FIFO有效数据,1-32字节,写操作从字节0开始,应用于发射模式 #define FLUSH_TX 0xE1 // 清除TX FIFO寄存器,应用于发射模式 #define FLUSH_RX 0xE2 // 清除RX FIFO寄存器,应用于接收模式 #define REUSE_TX_PL 0xE3 // 重新使用上一包有效数据,当CE为高过程中,数据包被不断的重新发射 #define NOP 0xFF // 空操作,可以用来读状态寄存器 #define CONFIG 0x00 // 配置寄存器 #define EN_AA 0x01 // “自动应答”功能寄存

nRF24L01无线通信系统设计..

nRF24L01无线通信系统设计 学院:电子信息学院 专业:电子信息工程 姓名: 学号: 指导老师:

摘要 本文介绍了一套基于STM32微处理器,结合nRF24L01无线通信模块的无线数据传输系统。nRF24L01无线通信系统是基于nRF24L01无线收发芯片,以STM32F103单片机为核心的半双工无线通信系统,文中详细阐述了该无线通信系统的硬件和软件设计。该系统主要由一个nRF24L01无线通信模块组成,在硬件基础上,结合nRF24L01的特点,实现了两个nRF24L01无线通信模块之间的通信。 关键字:nRF24L0l;STM32;无线通信 Abstract This paper introduces a wireless communication system , a system based on STM32 microprocessor, combined with nRF24L01 wireless communication module . nRF24L01 wireless communication system is based on nRF2L01 wireless transceiver chip, half duplex wireless communication system with a control core of STM32F103 MCU.This paper describes the hardware and software design of the wireless communication system. The system mainly consists of a nRF24L01 wireless communication module, basing on the hardware and combining with the characteristics of nRF24L01, and realize the implementation of communication between two nRF24L01 wireless communication modules . Key words:nRF24L01;STM32;Wireless Communication

NRF24L01编程心得123

第一次使用无线通信的芯片,第一次接触SPI总线时序,第一次遇到芯片有问题,很多的第一次,所以最后成功了我觉得很有意义,收获了很多,有必要用寥寥数字来记录一下。 最开始老板给的是一个NRF401的芯片,后来网上一查,这玩意早停产了,不过发现其操作和硬件接口非常简单,编程应该也非常简单,于是乎三下两下的接好电路,编好程序,上电一跑,晕了!完全没反应,一开始还怀疑自己的程序或者硬件电路哪里错了,DEBUG,查资料搞了好几天,最后确定自己没有搞错。于是乎,又把401拿掉,直接用2根导线把两块板子的串行口接好,然后奇迹出现了,如同我设想的那样运行。好吧,终于可以确定这2块不知放了多少年布满飞尘的401是坏的了。 然后上网继续寻找替代品,淘宝上一搜人气最高的是NRF24L01,本来还想买905的,不过哥相信群众,于是买了2块NRF24L01回来。这个芯片的接口是SPI的接口,的确让我郁闷了一阵,以前从来没接触过这个玩意,而且一般的单片机哪有SPI接口,身边的一块ARM板倒是有不过只有一块啊,于是又硬着头皮去看如何用普通IO口模拟出SPI的时序来操作NRF24L01,等搞明白了芯片也寄到了,又是一阵捣鼓,接好线,相当多的线,编好程序,相对401来说很长的程序。一上电,又晕了,还是没反应。然后就是无止境的调试,修改程序,整整花了一周多时间后终于遇到了曙光啊!一个网上的高手帮我用他那边的示波器分析了一下我的程序波形,说没有问题啊,然后另一个高手告诉我应该怎样来一步一步地调试这些芯片,比如先给芯片寄存器写一个值然后马上读出来,看是否写操作正确,等等。这个经验之谈真是犹如黑夜里的一盏明灯啊,让我豁然开朗,马上照高手指点的一搞,结果出来了。2块NRF24L01的其中一块根本写不进去数据,完全是坏的,哎!人品啦!(我承认是我太傻太天真了,以为老板发货的时候都会先帮我检查一遍)马上和淘宝上的老板沟通了一下,让我把坏的寄过去他检查如果确实是他们的原因他们负责再给我寄一个过来,同时包邮费。好吧,我又等,等了一周老板来电话了通知我确实是他们的问题给我寄了一块坏的芯片,并给我重新寄来了一块好的。然后继续等啊等,又是一周,东西终于来了。这次哥颤抖着以迅雷不及掩耳盗铃儿响叮当之势再一次接好线,下好以前写好的程序,谢天谢地谢亚龙啊,这次总算测试通过,两块芯片都是好的了。 今天自己又写了一个发送与接收单工通信的测试程序,跑了一下。恩,效果不错,看到接收端不停得把收到的数据显示在电脑上时内牛满面啊!这其中也有个小插曲,一开始接收的数组被我定义在了code段,结果发送端都能正确收到接收的应答信号,但接收端就是不能把数据写进接收数组里面,程序编译也通过。后来一想才明白CODE内的代码是下载到flash中的,是修改不了的。最后改成data修饰,终于能正常运行了。当初我曾请一个调出来的网友把他的程序借我参考下,但他说这是公司的商业机密,不能给,哎,为了以后的同仁少走弯路,我把我调好的测试程序放上来。 #include #include #define MODE 0 //MODE=1时为发送代码MODE=0时为接收代码 typedef unsigned char uchar; //****************************************IO端口定义*************************************** sbit MISO =P2^3; sbit MOSI =P2^2; sbit SCK =P2^1; sbit CE =P2^5; sbit CSN =P2^0;

相关主题