图文详解MEGA 5构建系统发育树

图文详解MEGA 5构建系统发育树
图文详解MEGA 5构建系统发育树

图文详解MEGA5构建系统发育树

标签:mega mega5构建系统进化树||分类:BioInfo

来源:https://www.360docs.net/doc/bc18617390.html,/s/blog_5eb2fefb0101gny0.html

软件下载:MEGA5;DNAMAN7

1.准备序列文件

准备fasta格式序列文件(fasta格式:大于号>后紧跟序列名,换行后是序列。举例如下)。每条序列可以单独为一个文件,也可以把所有序列放在同一文件内。

核酸序列:

>sequence1_name

CCTGGCTCAGGATGAACGCT

氨基酸序列:

>sequence2_name

MQSPINSFKKALAEGRTQIGF

2.多序列比对

打开MEGA5,点击Align,选择Edit/Build Alignment,选择Create a new alignment,点击OK。

这时需要选择序列类型,核酸(DNA)或氨基酸(Protein)。

选择之后,在弹出的窗口中直接Ctrl+V粘贴序列(如果所有序列

在同一个文件中,即可全选序列,复制)。也可以:点击Edit,选

择Insert Sequence From File,选择序列文件(可多选)。

序列文件加载之后,呈蓝色背景(为选中状态)。点击按钮,选择Align DNA(如果是氨基酸序列,则会出现Align Protein)。弹出的窗口中设置比对参数,一般都是采用默认参数即可。点击OK,开始多序列比对。

比对完成后,呈现以下状态。

这时需要截齐两端含有---的序列:选中含有---的序列,按键Delete删除(注意:两端都需要截齐)。截齐之后,保存文件为:filename.mas

3.构建系统进化树

多序列比对窗口,点击Data,选择Phylogenetic Analysis,弹出窗口询问:所用序列是否编码蛋白质,根据实际情况选择Yes或No。此时,多序列比对文件就激活了,可以返回MEGA5主界面建树了。

MEGA5主界面。点击Phylogeny,选择Construct/Test Neighbor-Joining Tree…弹出的对话框询问:是否使用当前激活的数据,选择Yes。这时弹出建树参数设置对话框,更改No.of Bootstrap Replications为1000,其他参数默认即可,点击Compute。

这里解释一下,Construct/Test Maximum Likelihood Tree…(ML)或Construct/Test Neighbor-Joining Tree…(NJ)或Construct/Test Minimum-Evolution Tree…(ME)为三种不同的建树方法,NJ方法最常用。

MEGA5打开)。

4.后期修改

为了美观,也是为了满足发表文章的要求,需要对进化树进行树形、字体、字号的修改。点击View,选择

Options。弹出窗口中,在Tree标签中可以修改枝与枝之间的距离(Taxon Separation)、枝长(Branch Length)和树宽(Tree Width),调整至美观即可。Branch标签中,可以选择勾选“Hide values lower than%”,一般隐

藏50%以下的数值。其他的参数可以自行研究,一般默认即可。

文字字体、字号的修改。

方法1:点击Image ,选择Save as PDF file ,保存至filename.pdf 。打开软件Adobe Illustrator CS6,文件---打开---选择刚刚保存的PDF 文件。修改好之后,文件---导出---可以导出很多种类型的文件。一般选择保存成TIFF (.tif )文件,颜色模式选择RGB ,勾选LZW 压缩,其他默认。

方法2:点击Image ,选择Copy to Clipboard 。粘贴到Word 中,右击进化树图片,编辑图片。即可更改字体字号。修改好可以了。或者进一步导出图片格式:先将该word 文件打印生成PDF 文件,再用Adobe Illustrator CS6或Adobe Photoshop CS6导出图片格式。

系统发育树构建步骤

如何建树 step 1. 将16S rDNA序列在NCBI上进行BLAST比对(https://www.360docs.net/doc/bc18617390.html,/BLAST/) BLAST是目前常用的数据库搜索程序,它是Basic Local Alignment Search Tool的缩写,意为“基本局部相似性比对搜索工具”(Altschul et al.,1990 [62];1997[63])。国际著名生物信息中心都提供基于Web的BLAST服务器。BLAST算法的基本思路是首先找出检测序列和目标序列之间相似性程度最高的片段,并作为内核向两端延伸,以找出尽可能长的相似序列片段。首先登录到提供BLAST服务的常用网站,比如国内的CBI、美国的NCBI、欧洲的EBI和日本的DDBJ。这些网站提供的BLAST服务在界面上差不多,但所用的程序有所差异。它们都有一个大的文本框,用于粘贴需要搜索的序列。把序列以FASTA格式(即第一行为说明行,以“>”符号开始,后面是序列的名称、说明等,其中“>”是必需的,名称及说明等可以是任意形式,换行之后是序列)粘贴到那个大的文本框,选择合适的BLAST程序和数据库,就可以开始搜索了。如果是DNA序列,一般选择BLASTN搜索DNA数据库。这里以NCBI为例。登录NCBI主页-点击BLAST-点击Nucleotide-nucleotide BLAST (blastn)-在Search文本框中粘贴检测序列-点击BLAST!-点击Format-得到result of BLAST。BLASTN结果如何分析(参数意义): 例如: >gi|28171832|gb|AY155203.1| Nocardia sp. ATCC 49872 16S ribosomal RNA gene, complete sequence Score = 2020 bits (1019), Expect = 0.0 Identities = 1382/1497 (92%), Gaps = 8/1497 (0%) Strand = Plus / Plus Query: 1 gacgaacgctggcggcgtgcttaacacatgcaagtcgagcggaaaggccctttcgggggt 60 |||||||||||||||||||||||||||||||||||||||||| ||||||||| ||||| Sbjct: 1 gacgaacgctggcggcgtgcttaacacatgcaagtcgagcggtaaggcccttc--ggggt 58 Query: 61 actcgagcggcgaacgggtgagtaacacgtgggtaacctgccttcagctctgggataagc 120 || ||||||||||||||||||||||||||||||| | |||||| ||||||||||||| Sbjct: 59 acacgagcggcgaacgggtgagtaacacgtgggtgatctgcctcgtactctgggataagc 118 其中,Score指的是提交的序列和搜索出的序列之间的分值,越高说明越相似。Expect指的是比对的期望值。比对越好,expect越小,一般在核酸层次的比对,expect小于1e-10,就比对很好了,多数情况下为0。Identities指的是提交的序列和参比序列的相似性,如上所指为1497个核苷酸中二者有1382个相同。Gaps指的是一般翻译成空位,指的是对不上的碱基数目。Strand指的是链的方向,Plus / Minus意味着提交的序列和参比序列是反向互补的,如果是Plus / Plus则二者皆为正向。 挑选与目的菌株具有较近亲源关系的模式种(type strain)序列将这些序列用记事本保存成dna.seq文件。 >M.mulatta AAGCTTTTCT GGCGCAACCA TCCTCATGAT >M.fascicularis AAGCTTCTCC GGCGCAACCA CCCTTA TAA T step 2. 用CLUSTALX对已知DNA序列做多序列比对 1 双击clustalx.exe运行程序。 2 点File→Load Sequence,打开dna.seq。

stm32:系统时钟

实验4 系统时钟实验 上一章,我们介绍了STM32 内部系统滴答定时器,该滴答定时器产生的延时非常精确。在本章中,我们将自定义RCC系统时钟,通过改变其倍频与分频实现延时时间变化,实现LED灯闪烁效果。通过本章的学习,你将了解 RCC系统时钟的使用。本章分为以下学习目标: 1、了解 STM32 的系统构架。 2、了解 STM32 的时钟构架。 3、了解 RCC 时钟的操作步骤。 1.1 STM32 的系统构架 STM32 的时钟比较复杂,它可以选择多种时钟源,也可以选择不一样的时钟频率,而且在系统总线上面,每条系统的时钟选择都是有差异的。所以想要清楚的了解 STM32 的时钟分配,我们先来了解一下 STM32 的系统构架是什么样的。 从上图我们知道,RCC 时钟输出时钟出来,然后经过 AHB 系统总线,分别

分配给其他外设时钟,而不一样的外设,是先挂在不一样的桥上的。比如: ADC1、ADC2、 SPI1、GPIO 等都是挂在 APB2 上面,而有些是挂在 APB1上面,所以,虽然它们都是从 RCC 获取的时钟,但是它们的频率有时候是不一样的。 1.2 STM32 的时钟树 STM32 单片机上电之后,系统默认是用的时钟是单片机内部的高速晶振时钟,而这个晶振容易受到温度的影响,所以晶振跳动的时候不是有一定的影响,所以一般开发使用的时候都是使用外部晶振,而且单片机刚启动的时候,它的时钟频率是 8MHZ,而 STM32 时钟的最高频率是 72MHZ,所以单片机一般开机之后运行的程序是切换时钟来源,并设置时钟频率。大家可能有点疑惑,在第一章到第三章之中,我们并没有看到单片机开机之后设置时钟来源和时钟频率的。其实在使用库函数的时候,其实在库函数启动文件里面,是帮助我们把时钟频率设置到 72MHZ 了。大家可以打开一个库函数工程,在 system_stm32f10x.c 的第 106行,它定义了一个 SYSCLK_FREQ_72MHz: #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) /* #define SYSCLK_FREQ_HSE HSE_VALUE */ #define SYSCLK_FREQ_24MHz 24000000 #else #define SYSCLK_FREQ_72MHz 72000000 然后在下面的程序中,根据这个 SYSCLK_FREQ_72MHz 定义,它默认设置成 72MHZ。接下来我们来看一下具体的 RCC 时钟树:

STM32复位和时钟控制(RCC)

复位 STM32F10xxx支持三种复位形式,分别为系统复位、电源复位和备份区域复位。 1、系统复位 系统复位将所有寄存器设置成复位值,除了RCC_CSR(控制状态寄存器)中的相关复位标志位,通过查看RCC_CSR寄存器,可以识别复位源。 系统复位可由以下5种方式产生: 1)外部引脚NRST复位(低电平触发); 2)窗口看门狗(WWDG)计数终止 3)独立看门狗(IDOG)计数终止 4)软件复位(SW RESET),通过将中断应用和复位控制寄存器 (Application Interrupt and Reset Control Register )中SYSRESETREQ位置1。具体参考Cortex-M3 programming manual。 5)低功耗管理复位: ①通过进入等待模式(StandBy)产生复位: 通过User Option Bytes中设置nRST_STDBY位使能这种复 位模式。这时,即使执行了进入待机模式的过程,系统将 被复位而不是进入待机模式。 ②通过进入停止模式(STOP)产生复位: 通过User Option Bytes中设置nRST_STOP位使能这种复

位模式。这时,即使执行了进入停止模式的过程,系统将 被复位而不是进入停止模式。 2、电源复位 电源复位设置所有寄存器置初始值,除了备份区域。 电源复位可由以下2种方式产生: 1)上电复位和掉电复位(POR/PDR reset) 2)退出等待(StandBy)模式 这些复位源都作用在NRST引脚上,并且在复位延迟期间保持低电平。 提供给设备的系统复位信号都由NRST引脚输出,对每一个内部/外部复位源,脉冲发生器都将保证一个20us最小复位周期。对于外部复位,当NRST位置低时,将产生复位信号。 3、备份区复位 备份区复位仅仅影响被分区域,有以下两种产生方式: 1)软件复位,设置备份区域控制寄存器RCC_BDCR BDRST= 1; 2)在V DD和V BAT两者掉电的前提下,V DD或V BAT上电。

分子进化与系统进化树的构建

分子进化与系统进化树的构建 分子进化与系统进化树的构建 分子进化与系统进化树的构建 主要内容: 1、分子进化的研究方法 2、系统进化树的构建方法 3、系统进化树构建常用软件汇集 4、系统进化树构建方法及软件的选择 5、Phylip分子进化分析软件包简介及使用 6、如何利用MEGA3.1构建进化树 声明: 1、本篇涉及的资源主要源于网络及相关书籍,由酷友搜集、分析、整理、审改,供大家学习参考用,如有转载、传播请注明源于基因酷及本篇的工作人员;若本篇侵犯了您的版权或有任何不妥,请Email genecool@https://www.360docs.net/doc/bc18617390.html,告知。 2、由于我们的学识、经验有限,本篇难免会存在一些错误及缺陷,敬请不吝赐教:请到基因酷论坛(https://www.360docs.net/doc/bc18617390.html,/bbs)本篇对应的专题跟贴指出或Email genecool@https://www.360docs.net/doc/bc18617390.html,。 致谢: 整编者:flashhyh 主要参考资料:《生物信息学札记》樊龙江;《分子进化分析与相关软件的应用》作者不详;《进化树构建》ZHAO Yangguo;《如何用MEGA 3.1构建进化树》作者不详;《MEGA3指南》作者不详; 分子进化的研究方法 分子进化的研究方法 分子进化的研究方法 分子进化研究的意义 自20世纪中叶,随着分子生物学的不断发展,进化研究也进入了分子进化(molecularevolution)研究水平,并建立了一套依赖于核酸、蛋白质序列信息的理论和方法。随着基因组测序计划的实施,基因组的巨量信息对若干生物领域重大问题的研究提

供了有力的帮助,分子进化研究再次成为生命科学中最引人注目的领域之一。这些重大问题包括:遗传密码的起源、基因组结构的形成与演化、进化的动力、生物进化等等。分子进化研究目前更多地是集中在分子序列上,但随着越来越多生物基因组的测序完成,从基因组水平上探索进化奥秘,将开创进化研究的新天地。 分子进化研究最根本的目的就是从物种的一些分子特性出发,从而了解物种之间的生物系统发生的关系。通过核酸、蛋白质序列同源性的比较进而了解基因的进化以及生物系统发生的内在规律。 分子进化研究的基础 假设假设::核苷酸和氨基酸序列中含有生物进化历史的全部信息核苷酸和氨基酸序列中含有生物进化历史的全部信息。。 分子钟理论:在各种不同的发育谱系及足够大的进化时间尺度中,许多序列的进化速率几乎是恒定不变的。如下图: 直系同源与旁系同源 直系同源(orthologs):同源的基因是由于共同的祖先基因进化而产生的; 旁系同源(paralogs):同源的基因是由于基因复制产生的。 两者之间的关系如下图所示: 注:用于分子进化分析中的序列必须是直系同源的用于分子进化分析中的序列必须是直系同源的 用于分子进化分析中的序列必须是直系同源的,才能真实反映进化过程。 分子进化研究的基本方法 对于进化研究,主要通过构建系统发育过程有助于通过物种间隐含的种系关系揭示进化动力的实质。 表型的(phenetic)和遗传的(cladistic)数据有着明显差异。Sneath 和Sokal(1973)将表型性关系定义为根据物体一组表型性状所获得的相似性,而遗传性关系含有祖先的信息,因而可用于研究进化的途径。这两种关系可用于系统进化树(phylogenetictree)或树状图(dendrogram)来表示。表型分枝图(phenogram)和进化分枝图(cladogram)两个术语已用于表示分别根据表型性的和遗传性的关系所建立的关系树。进化分枝图可以显示事件或类群间的进化时间,而表型分枝图则不需要时间概念。文献中,更多地是使用“系统进化树”一词来表示进化的途径,另外还有系统发育树、物种树(speciestree)、基因树等等一些相同或含义略有差异的名称. 系统进化树分有根(rooted)和无根(unrooted)树。有根树反映了树上物种或基因的时间顺序,而无根树只反映分类单元之间的距离而不涉及谁是谁的祖先问题。下图表示了

系统发育树构建方法优劣

1.邻接法邻接法(neighbor-joiningmethod,NJ)由Saitou和Nei(1987)提出,NJ法是基于最小进化原理经常被使用的一种算法,它不检验所有可能的拓扑结构,能同时给出拓扑结构和分支长度。在重建系统发生树时,它取消了UPGMA法所做的假定,认为在进化分支上,发生趋异的次数可以不同。最近的计算机模拟已表明它是最有效的基于距离数据重建系统树的方法之一。该方法通过确定距离最近(或相邻)的成对分类单位来使系统树的总距离达到最小。它的特点是重建的树相对准确,假设少,计算速度快,只得一棵树。其缺点主要表现在将序列上的所有位点等同对待,且所分析序列的进化距离不能太大。故NJ法适用于进化距离不大,信息位点少的短序列。邻接法在距离建树中经常会用到,而不用理会使用什么样的优化标准。完全解析出的进化树是通过对完全没有解析出的“星型”进化树进行“分解”得到的,分解的步骤是连续不断地在最接近(实际上是最孤立的)的序列对中插入树枝,而保留进化树的终端。于是,最接近的序列对被巩固了,而“星型”进化树被改善了,这个过程将不断重复。这个方法相对而言很快,也就是说,对于一个50个序列的进化树,只需要若干秒甚至更少。 2.最大简约法最大简约法(maximum parsimony method,MP)最早是基于形态特征分类的需要发展起来的,具体的算法有许多不同版本,其中有些已被广泛地应用于分子进化研究中。利用MP方法重建系统发生树,实际上是一个对给定OTUs其所有可能的树进行比较的过程。对某一个可能的树,首先对每个位点祖先序列的核苷酸组成做出推断,然后统计每个位点用来阐明差异的核苷酸最小替换数目。在整个树中,所有信息简约位点最小核苷酸替换数的总和称为树的长度(常青和周开亚,1998)。MP法是一种优化标准,这种标准遵循“奥卡姆剃刀原则(Occam’S Razor principle)”:对数据最好的解释也是最简单的,而最简单的所需要的特别假定也最少。MP法基于进化过程中所需核苷酸(或氨基酸)替代数目最少的假说,对所有可能正确的拓扑结构进行计算并挑选出所需替代数最小的拓扑结构作为最优系统树,也就是通过比较所有可能树,选择其中长度最小的树作为最终的系统发生树,即最大简约树(maximum parsimony tree)。与其他建树方法相比,MP法无需引入处理核苷酸或者氨基酸替代时所必需的假设(替代模型)。同时,MP法对于分析某些特殊的分子数据(如插入序列和插入/缺失)有用。在分析的序列位点上没有回复突变或平行突变,且被检验的序列位点数很大的时候,MP法能够获得正确的(真实)系统树。但MP法推导的树不是唯一的,在分析序列上存在较多的回复突变或平行突变,而被检验的序列位点数又比较少的时候,最大简约法可能会出现建树错误。故MP法适用于序列残基差别小,具有近似变异率,包含信息位点比较多的长序列。 3.最大似然法最大似然法(maximum likelihood method,MI。)是20世纪60年代末期由于对地生物信息学分析实践震波和水声信号等处理的需要而发展起来的一种非线性谱估计方法。最早由凯佩用这种方法对空间阵列接收信号进行频率波数谱估值,后来推广到对时问信号序列的功率谱估值。 最大似然法最早应用于系统发育分析是在对基因频率数据的分析上。其原理是考虑到每个位点出现残基的似然值,将每个位置所有可能出现的残基替换概率进行累加,产生特定位点的似然值。MI。法对所有可能的系统发育树都计算似然函数,似然函数值最大的那棵树即为最可能的系统发育树。利用最大似然法来推断一组序列的系统发生树,需首先确定序列进化的模型,如Jukes—Cantor模型、Kimura二参数模型及一般二参数模型等。在进化模型选择合理的情况下,MI。法是与进化事实吻合最好的建树算法。其缺点是计算强度非常大,极为耗时。

Finder自学stm32笔记之电源时钟

电源 STM32的工作电压(VDD)为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。当主电源VDD掉电后,通过VBA T脚为实时时钟(RTC)和备份寄存器提供电源。 由上图可知VDDA.VSSA分别是独立给ADC的电源盒电源地。ADC需要准确的精度因此需要独立的电源供电。 使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。以便于RTC、后备区域、一些寄存器工作当然也需要外部振荡器提供时钟,所以也为LSE振荡器供电。 stm32中有上电复位掉电复位电路,可以设置通过设置PVDE位设置PVD阀值,当VDD 电压异常的时候就会复位,可以设置中断。 低功耗模式 三种低功耗模式 睡眠模式(Cortex?-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行) 停止模式(所有的时钟都已停止而电压还在供给) :是深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在1.8V供电区域的的所有时钟都被停止,PLL、HSI和HSE RC振荡器的功能被禁止,SRAM和寄存器内

容被保留下来。在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。 待机模式(1.8V电源关闭):待机模式可实现系统的最低功耗。该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失。只有备份的寄存器和待机电路维持供电。 前面是三者的详细介绍,初一看看不出有什么区别,我当时都看的晕呼呼地,做笔记时候才发现他们真正的不同。现在讲解一下。 睡眠模式只是关掉了CM3的内核,外设都在运行包过内部外部时钟、IO口、中断NVIC 等等。停止模式是进一步的睡眠模式它是关掉了所有的外设时钟,但是仍旧在供电。待机模式是最低功耗的模式,它连时钟供电全部禁止除了备份的寄存器和待机电路维持供电。(有待进一步的深入研究并修正) Stm32降低功耗的三种方法: 1.低功耗模式 2.降低系统时钟 3.关掉外设 如题降低系统时钟通过对预分频寄存器进行编程,可以降低任意一个系统时钟(SYSCLK、HCLK、PCLK1、PCLK2)的速度。从而降低功耗。 但是我有疑问就是:如何在系统运行的情况下切换系统时钟的时钟源?是否可以随时改变预分频系数? RCC_SYSCLKConfig 设置系统时钟(SYSCLK) RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);/* Wait till HSI is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x00) 这个函数只是配置好系统时钟不是随时改变系统时钟的函数。所以有待做实验研究此处 关闭外设:在运行模式下,任何时候都可以通过停止为外设和内存提供时钟(HCLK和PCLKx)来减少功耗。通过设置AHB外设时钟使能寄存器(RCC_AHBENR)、APB2外设时钟使能寄存器 (RCC_APB2ENR)和APB1外设时钟使能寄存器(RCC_APB1ENR)来开关各个外设模块的时钟。

stm32时钟树分析

void RCC_Configuration(void) { /* RCC system reset(for debug purpose) */ RCC_DeInit(); /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON);

/* Wait till HSE is ready */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { /* Enable Prefetch Buffer */ FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* Flash 2 wait state */ FLASH_SetLatency(FLASH_Latency_2); /* HCLK = SYSCLK */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ RCC_PCLK1Config(RCC_HCLK_Div2); /* PLLCLK = 8MHz * 9 = 72 MHz */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* Enable PLL */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } /* Select PLL as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x08) { } } }

基于STM32的TFT指针式时钟

基于STM32的TFT指针式时钟 摘要 自时钟发明的那天起,它就注定了与人们有着密不可分的关系,但科学技术在不断发展,人们随着时间的推移对时间计量的精度要求越来越高,机械式时钟也越来越满足不了人们日益增高的要求了。取而代之的事具有高度准确性和直观性且无机械装置,使用寿命更长更长等优点的电子时钟。电子时钟更具人性化,更能提高人们的生活质量,更受人们欢迎,机械时代已经远去,电子时代已经到来。因此本设计是基于意法半导体公司(ST)的STM32开发平台实现一种高精度,智能化的指针式时钟系统,采用STM32内部RTC设计电子时钟时,通常是数字显示,这是由于选用数码管和1602等器件的显示能力有限。而12864是基于点阵式的液晶屏,其像素点为128×64,但12864自身像素较低,使其显示指针式时钟效果远低于2.2寸TFT-LCD液晶,但两者所基于的原理相同。因此本设计采用STM32为控制核心,2.2寸TFT-LCD液晶作为显示芯片,构成了一个指针式电子时钟。 关键词:STM32;RTC;TFT-LCD

第1章绪论 1.1 引言 随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。单片机以其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能仪器仪表、家电产品等领域。 近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。而目前,对于指针式时钟来说,所用的指针大多是靠机械装置驱动达到显示时间的目的,例如手表,挂钟,钟楼等等,单片机在指针式时钟中的应用也已经非常普遍的,人们对指针时钟的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机作为指针时钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。输出设备显示器可以用液晶显示技术。 1.2 本设计的目的和意义 1.2.1 设计目的 (1)巩固,加深和扩大STM32应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课题需要,选择和查阅有关手册,图表及文献资料的自学能力,提高组成系统,编程,调试的动手能力; (3)对课题设计方案的分析、选择、比较,熟悉用STM32做系统开发,研制的过程,软硬件设计的方法,内容及步骤; (4)进一步掌握C语言在硬件编程中的应用,熟悉怎样用C语言实现TFT-LCD上的绘图功能; (5)掌握STM32内部RTC的原理和应用。 1.2.2设计意义 数字指针式时钟是采用数字电路实现对时,分,秒,星期,年,月,日等数字以及指针表盘显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,

构建系统进化树的方法步骤

构建系统进化树的方法步骤 1. 建树前的准备工作 1.1 相似序列的获得——BLAST BLAST是目前常用的数据库搜索程序,它是Basic Local Alignment Search Tool的缩写,意为“基本局部相似性比对搜索工具”(Altschul et al.,1990[62];1997[63])。国际著名生物信息中心都提供基于Web的BLAST服务器。BLAST算法的基本思路是首先找出检测序列和目标序列之间相似性程度最高的片段,并作为内核向两端延伸,以找出尽可能长的相似序列片段。 首先登录到提供BLAST服务的常用网站,比如国内的CBI、美国的NCBI、欧洲的EBI和日本的DDBJ。这些网站提供的BLAST服务在界面上差不多,但所用的程序有所差异。它们都有一个大的文本框,用于粘贴需要搜索的序列。把序列以FASTA格式(即第一行为说明行,以“>”符号开始,后面是序列的名称、说明等,其中“>”是必需的,名称及说明等可以是任意形式,换行之后是序列)粘贴到那个大的文本框,选择合适的BLAST程序和数据库,就可以开始搜索了。如果是DNA序列,一般选择BLASTN搜索DNA数据库。 这里以NCBI为例。登录NCBI主页-点击BLAST-点击Nucleotide-nucleotide BLAST (blastn)-在Search文本框中粘贴检测序列-点击BLAST!-点击Format-得到result of BLAST。 BLASTN结果如何分析(参数意义): >gi|28171832|gb|AY155203.1| Nocardia sp. ATCC 49872 16S ribosomal RNA gene, complete sequence Score = 2020 bits (1019), Expect = 0.0 Identities = 1382/1497 (92%), Gaps = 8/1497 (0%) Strand = Plus / Plus Query: 1 gacgaacgctggcggcgtgcttaacacatgcaagtcgagcggaaaggccctttcgggggt 60 |||||||||||||||||||||||||||||||||||||||||| ||||||||| ||||| Sbjct: 1 gacgaacgctggcggcgtgcttaacacatgcaagtcgagcggtaaggcccttc--ggggt 58 Query: 61 actcgagcggcgaacgggtgagtaacacgtgggtaacctgccttcagctctgggataagc 120 || ||||||||||||||||||||||||||||||| | |||||| ||||||||||||| Sbjct: 59 acacgagcggcgaacgggtgagtaacacgtgggtgatctgcctcgtactctgggataagc 118 Score :指的是提交的序列和搜索出的序列之间的分值,越高说明越相似;

关于STM32开发板晶振相关的问题汇总

关于STM32开发板晶振相关的问题汇总 1自己做了个STM32的板子,,但是手里没有8M的晶振,所以就用了,12M的,,但是不正常,上电之后PA15和PA14接的是两个led,PA15接的led常亮,PA14接的的led 不亮,,而且芯片下载程序又能下载,应该不是芯片坏的问题吧,,而且不管我些什么程序进去,两个脚的状态都不变,,我怀疑是电路有问题,,可是我仔细检查了电路和板子,都没问题,,JTAG正常使用。我用的是12M的晶振,这会有影响吗?感觉不管下什么程序进去感觉芯片好像没有运行。 答:如果使用12M的晶振,那么要修改启动文档中的关于RCC的语句。 因为如果你使用库文件的话,ST的库,默认外部晶振是8M,所以如果你不修改RCC部分 的语句,会造成CPU不启动,或者启动不成功。 现象是,在MDK环境下,能够通过JTAG识别到芯片,但是无法下载或者debug。 会提示can not attach CPU。 2、突然想到这个问题,外部无源晶振选择大小的区别是什么? 对STM32芯片它都要先分频,再倍频。 我在想,假设,如果它分频都要降到2M,再倍频上去 那我直接2M的晶振1分频再倍频,跟24M先12分频再倍频他们的区别是什么?还是说本身就是任意的,根据自己需要选择? 答:方便各种应用场景。 3、自己做的STM32F103RBT6板子,外接8M晶振,现在程序下载正常,运行正常,在程 序初始化时用到Stm32_Clock_lnit(9)这条语句,我想问下是不是外部晶振如果没起振在执行这条语句时会停止?也就是说我的程序下载和运行都正常说明外部晶振肯定起振了,而且已经倍频到72M 了。 答:默认是用内部8M RC震荡的,你切换为PLL之后,才是使用8M倍频的,如果你注释 掉Stm32_Clock_Init(9),那么代码也会跑,但是是用内部8M RC震荡。 4、外部晶振换成了25MHz,但是想方便的移植以前8MHz板子上程序,应该怎么修改系统时钟?看了system_stm32f10x.c系统时钟设置,但是不知道怎么修改!求指点谢谢下面参数是system_stm32f10x.c系统时钟设置 //默认SYSCLK_FREQ_72MHz 可在system_stm32f10x.c 改变设置 //默认HCLK = SYSCLK; RCC->CFGR |= (ui nt32_t)RCC_CFGR_HPRE_DIV1; 〃默认PCLK2 = HCLK ; RCC->CFGR |= (ui nt32_t)RCC_CFGR_PPRE2_DIV1; 〃默认PCLK1 = HCLK ; RCC->CFGR |= (ui nt32_t)RCC_CFGR_PPRE1_DIV2; 〃默认PLL as system clock source; RCC_CFGR_SW_PLL; 答:25M不用想了,必须是25的整数倍才行。 原子哥要是把它设置成75MHz 具体怎么修改哪些配置参数? 25*3=75 了 设置倍频数为3. 但是库函数这个不懂,寄存器的就很简单 5、S TM32的RTC不能用,想确定是否硬件问题。但不知道测量的是哪2个引脚。希望知道的高手指教一下 答:1,去掉RTC晶振的电容 2,换晶振.

stm32时钟详解

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 其实是四个时钟源,如下图所示(灰蓝色),PLL是由锁相环电路倍频得到PLL时钟。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的128分频。RTC的时钟源通过RTCSEL[1:0]来选择。 STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,可以选择为1.5分频或者1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz。 另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。 系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5大模块使用: ①、送给AHB总线、内核、内存和DMA使用的HCLK时钟。 ②、通过8分频后送给Cortex的系统定时器时钟。 ③、直接送给Cortex的空闲运行时钟FCLK。 ④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。 ⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。 在以上的时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时钟、各种APB1外设、APB2外设等等。当需要使用某模块时,记得一定要先使能对应的时钟。 需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2。

STM32 系统滴答定时器(Systick) 彻底研究、完美解读并且免费,鄙视5个下载券的二货

STM32 系统滴答定时器(Systick) 彻底研究解读 stm32系统滴答定时器(Systick) 彻底研究解读 SysTick 起那些TIM 定时器可以说简单多啦~~~~~哥的心情也好了不少,嘎嘎!! arm Cortex-M3 内核的处理器内部包含了一个SysTick 定时器,它是一个24 位的倒计数定时器,注意,是倒计数!当计到0 时它就会从LOAD 寄存器中自动重装载定时初值。只要不把CTRL 寄存器中的ENABLE 为清0,它就永不停息!遗憾的是,Sy sTick 定时器在《STM32 参考手册》里一个屁都没放,只有在《ARM Cortex-M3 技术参考手册》和《ARM Cortex-M3 权威指南》才找到相关寄存器的介绍。 一、SysTick 的时钟来源 我先来看看STM32 的时钟树 The RCC feeds the Cortex Sy stemTimer (SysTick) external clock with the AHB clock(HCLK) divided by 8.The SysTick can work either with this clock or with the Cortex clock(HCLK), configurable in the Sy sTick Control and Status Register. 上面这段话的意思是,SysTick的时钟来源可以是HCLK的8分频或就是HCLK, 具体是哪种可通过配置“控制和状态寄存器(CTRL)”来选择。 二、SysTick的寄存器简介 SysTick的寄存器一共有4个。

图文详解stm32时钟树

对于广大初次接触STM32的读者朋友(甚至是初次接触ARM器件的读者朋友)来说,在熟悉了开发环境的使用之后,往往“栽倒”在同一个问题上。这问题有个关键字叫:时钟树。 众所周知,微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动——往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性运作为末,这种时钟“能量”扩散流动的路径,犹如大树的养分通过主干流向各个分支,因此常称之为“时钟树”。在一些传统的低端8位单片机诸如51,AVR,PIC等单片机,其也具备自身的一个时钟树系统,但其中的绝大部分是不受用户控制的,亦即在单片机上电后,时钟树就固定在某种不可更改的状态(假设单片机处于正常工作的状态)。比如51单片机使用典型的12MHz晶振作为时钟源,则外设如IO口、定时器、串口等设备的驱动时钟速率便已经是固定的,用户无法将此时钟速率更改,除非更换晶振。 而STM32微控制器的时钟树则是可配置的,其时钟输入源与最终达到外设处的时钟速率不再有固定的关系,本文将来详细解析STM32微控制器的时钟树。

图1是STM32微控制器的时钟树,表1是图中各个标号所表示的部件。 标号图1标号释义 1 内部低速振荡器(LSI,40Khz) 2 外部低速振荡器(LSE,32.768Khz) 3 外部高速振荡器(HSE,3-25MHz) 4 内部高速振荡器(HIS,8MHz) 5 PLL输入选择位 6 RTC时钟选择位 7 PLL1分频数寄存器 8 PLL1倍频寄存器 9 系统时钟选择位 10 USB分频寄存器 11 AHB分频寄存器 12 APB1分频寄存器 13 AHB总线 14 APB1外设总线 15 APB2分频寄存器 16 APB2外设总线 17 ADC预分频寄存器 18 ADC外设 19 PLL2分频数寄存器 20 PLL2倍频寄存器 21 PLL时钟源选择寄存器 22 独立看门狗设备 23 RTC设备 图1 STM32的时钟树 在认识这颗时钟树之前,首先要明确“主干”和最终的“分支”。假设使用外部8MHz 晶振作为STM32的时钟输入源(这也是最常见的一种做法),则这个8MHz便是“主干”,而“分支”很显然是最终的外部设备比如通用输入输出设备(GPIO)。这样可以轻易找出第一条时钟的“脉络”:3——5——7——21——8——9——11——13 对此条时钟路径做如下解析: 对于3,首先是外部的3-25MHz(前文已假设为8MHz)输入; 对于5,通过PLL选择位预先选择后续PLL分支的输入时钟(假设选择外部晶振); 对于7,设置外部晶振的分频数(假设1分频); 对于21,选择PLL倍频的时钟源(假设选择经过分频后的外部晶振时钟); 对于8,设置PLL倍频数(假设9倍频); 对于9,选择系统时钟源(假设选择经过PLL倍频所输出的时钟); 对于11,设置AHB总线分频数(假设1分频); 对于13,时钟到达AHB总线; 在上一章节中所介绍的GPIO外设属于APB2设备,即GPIO的时钟来源于APB2总线,同样在图1中也可以寻获GPIO外设的时钟轨迹:

构建系统进化树的详细步骤

构建系统进化树的详细步骤 1. 建树前的准备工作 1.1 相似序列的获得——BLAST BLAST是目前常用的数据库搜索程序,它是Basic Local Alignment Search Tool 的缩写,意 为“基本局部相似性比对搜索工具”(Altschul et al.,1990[62];1997[63])。国际著名生物信息中心 都提供基于Web的BLAST服务器。BLAST算法的基本思路是首先找出检测序列和目标序 列之间相似性程度最高的片段,并作为核向两端延伸,以找出尽可能长的相似序列片段。 首先登录到提供BLAST服务的常用,比如国的CBI、美国的NCBI、欧洲的EBI和日本的DDBJ。这些提供的BLAST服务在界面上差不多,但所用的程序有所差异。它 们都有一个大的文本框,用于粘贴需要搜索的序列。把序列以FASTA格式(即第一行为说明 行,以“>”符号开始,后面是序列的名称、说明等,其中“>”是必需的,名称及说明等可以是 任意形式,换行之后是序列)粘贴到那个大的文本框,选择合适的BLAST程序和数据库,就 可以开始搜索了。如果是DNA序列,一般选择BLASTN搜索DNA数据库。 这里以NCBI为例。登录NCBI主页-点击BLAST-点击Nucleotide-nucleotide BLAST (blastn)-在Search文本框中粘贴检测序列-点击BLAST!-点击Format-得到result of BLAST。 BLASTN结果如何分析(参数意义): >gi|28171832|gb|AY155203.1| Nocardia sp. ATCC 49872 16S ribosomal RNA gene, complete sequence Score = 2020 bits (1019), Expect = 0.0 Identities = 1382/1497 (92%), Gaps = 8/1497 (0%) Strand = Plus / Plus

STM32F4时钟树外设挂靠总线学习小结

STM32F4时钟树学习小结 时钟是单片机的心脏,重要性不言而喻,STM32F4的时钟树是比较复杂的。 时钟树图一

时钟树图二 1:STMF4xx系统共计有三个主要时钟源(HSI、HSE和PLL)和两个次要时钟源(LSE、LSI)。2:SYSCLK可以来自HSI、HSE和PLL,多数采用PLL频率最高能达到168MHz。 3:RTC时钟可以来自LSE、LSI和HSE,但只有用LSE时,才能保证系统电源掉电时RTC仍能正常工作。 4:可通过多个预分频器配置AHB 频率、高速APB (APB2) 和低速APB (APB1)。AHB 域的最大频率为168 MHz。高速APB2 域的最大允许频率为84 MHz。低速APB1 域的最大允许频率为42 MHz。 5:STM32F405xx/07xx 和STM32F415xx/17xx 的定时器时钟频率由硬件自动设置。如果APB 预分频器为1,定时器时钟频率等于APB 域的频率。否则,等于APB 域的频率的两倍(×2)。 6:除以下时钟外,所有外设时钟均由系统时钟(SYSCLK) 提供: ●来自于特定PLL 输出(PLL48CLK) 的USB OTG FS 时钟(48 MHz)、基于模拟技术的随机数发生器(RNG) 时钟(<=48 MHz) 和SDIO 时钟(<= 48 MHz)。 ●I2S 时钟 ●由外部PHY 提供的USB OTG HS (60 MHz) 时钟 ●由外部PHY 提供的以太网MAC 时钟(TX、RX 和RMII)。 下面介绍挂在不同总线上的设备情况 1、挂在AHB1总线的外设有:最高时钟频率:168MHZ 1)GPIOA~K 2)RCC_AHB1Periph_CRC 3)FLITF 4)SRAM1 5)SRAM2 6)BKPSRAM 7)SRAM3 8)CCMDATARAMEN 9)DMA1 10)DMA2 11)DMA2D 12)ETH_MAC、ETH_MAC_Tx、ETH_MAC_Rx、ETH_MAC_PTP

相关文档
最新文档