单片机

07_stm32时钟树

依然范特西╮ 提交于 2019-12-06 14:14:23
一:stm32时钟树介绍   时钟对于单片机来说是非常重要的, 它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行。 时钟系统犹如人的心脏, 一旦有问题整个系统就崩溃。 我们知道 STM32 属于高级单片机, 其内部有很多的外设, 但不是所有外设都使用同一时钟频率工作, 比如内部看门狗和 RTC, 它只需 30 几 KHz 的时钟频率即可工作, 所以内部时钟源就有多种选择。 在前面章节的介绍中, 我们知道 STM32系统复位后首先进入 SystemInit 函数进行时钟的设置, 将 STM32F1 系统时钟设置为 72MHz(我们开发板上使用的 STM32F103ZET6 最大可达到 72M(超频除外) ),然后进入主函数。 那么这个系统时钟大小如何得来, 其他外设的时钟又如何划分,这些问题都可以通过一张时钟树图找到答案, 只要理解好时钟树, STM32 一切时钟的来龙去脉就会非常清楚。 下面就来了解下时钟树, 如图所示, 我们把时钟树拆分逐个介绍。   在 STM32 时钟系统中, 有 5 个重要的时钟源, 分别是 LSI、 LSE、 HSI、 HSE、PLL。 按照时钟频率分可分为高速时钟源和低速时钟源, 在这 5 个中 HSI, HSE 以及 PLL 属于高速时钟, LSI 和 LSE 属于低速时钟。 按照时钟来源可分为外部时钟源和内部时钟源, 外部时钟源就是在

MSP430系列单片机特性及应用领域

蹲街弑〆低调 提交于 2019-12-06 07:38:49
   概述   MSP430 系列 单片机 是 德州仪器 1996年开始推向市场的一种16位超低功耗的混合信号处理器,给人们留下的最大的亮点是低功耗而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手。主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。其迅速发展和应用范围的不断扩大,主要取决于以下的特点: 特性 1、强大的处理能力,采用了精简指令集( RISC )结构,具有丰富的寻址方式(7 种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的 寄存器 以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz晶体驱动下指令周期为125ns。这些特点保证了可编制出高效率的源程序。 2、在运算速度方面,能在8MHz晶体的驱动下,实现125ns的指令周期。16位的数据宽度、125ns的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如FFT等)。 3、超低功耗方面,MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行 时钟 方面都有其独到之处。电源电压采用的是1.8-3.6V电压。因而可使其在 1MHz 的时钟条件下运行时,芯片的电流会在200-400uA左右,时钟关断模式的最低功耗只有 0

ROM与RAM

Deadly 提交于 2019-12-06 04:13:27
  今天小姐姐来问我关于ROM、RAM和Flash的区别,我给她大致的说了一下名称和作用。可人家说她知道这玩意的名字,希望我能够接地气的解释一下什么是ROM、RAM、FLASH…… 这就把我难住了 ≧ ﹏ ≦。(当时也没好好学,つ﹏⊂, 错失了一个,撩小姐姐的机会 ),现在赶紧写温习一下,顺手篇博客记录一下。    ROM:    看了看维基百科和百度百科,两个百科对ROM的定义基本一致大概可以概括为这几点: ROM是Read-Only Memory的缩写,中文名为只读存储器。 只能读出事先所存数据的固态半导体存储器。 一旦储存资料就无法再将之改变或删除。 内容不会因为电源关闭而消失。 用在不需经常变更资料的电子或电脑系统中。   ROM有6个种类:  ROM: 只读存储器 非易失性存储器 制造时处于一种特殊发mask下进行烧入,写入的内容无法修改,电脑与用户只能读取保存在这里的指令,不能进行数据存入。 常用于存储特定功能的程序或系统程序,例如启动盘。   ROM的用于存储电脑引导指令时,ROM会提供一系列的指令给CPU进行测试,在最初的测试中,检查RAM位置(location)以确认其存储数据的能力。(顺便提一句键盘、计时器回路以及CPU本身都被纳入CPU测试)。说白了ROM就是存储器,带窗户封闭空间。你想塞东西只能在构建的时候装进去,想读呢?就从窗户往里够。   哎?不对啊

轻松入门电磁兼容:电子设备的敏感性试验

别说谁变了你拦得住时间么 提交于 2019-12-05 19:11:32
我读大学时(1984年),单片机刚刚出现,对于这个神奇的器件大家十分兴奋。于是在毕业设计中,很多项目都是与单片机有关的。记得,那时经常发生的一个事件就是,正在实验的兴头上,突然单片机就出现了死机,或者复位。那时不知道电磁兼容这个术语,但是知道单片机系统对电磁骚扰十分敏感,所以后来在应用单片机时总是心有余悸。 现在单片机无处不在,保证他们的可靠工作是十分重要的事情。也就是,电子设备在工作时,不能对外部的电磁骚扰过于敏感。这种骚扰既可以是其他电子设备的功能性电磁发射,例如雷达、电台等的电磁波发射,也可以是伴随发射,例如变频器等强骚扰设备。 检查设备对电磁骚扰敏感的程度的试验叫做敏感性试验,也叫做抗扰性试验。抗扰性试验的项目很多,之所以有很多项目,是因为要模拟现实中可能出现的各种电磁骚扰现象。 敏感性试验从对设备产生影响方面划分,主要分为四类: 第一类,电源线传导骚扰敏感性试验:主要考察设备对来自电源线的骚扰的敏感性,电源线上的骚扰既可以来自电网上的其他设备,也可以来自空间电磁波的感应;来自电网的骚扰的一般频率较低,来自空间的骚扰一般频率较高。还有一个重要区别,来自电网的骚扰是差模骚扰,来自空间的骚扰是共模骚扰。差模和共模的概念后面会进行介绍。 第二类,辐射骚扰敏感性试验:考察设备对空间电磁波的敏感性。这种电磁波主要来自无线电辐射天线,例如,电台、雷达等。也可以来在附近的强骚扰设备,例如

fpga和单片机和arm和dsp的区别

不羁岁月 提交于 2019-12-05 17:46:56
fpga主要负责的是: FPGA 它的结构是查找表结构,其程序不用去太考虑芯片的结构,要注意的是时序上问题, 它的结构比较复杂,功能也很强大,一般应用在通信领域等比较高端的场合,FPGA更偏向于硬件电路 FPGA由于是硬件电路,运行速度直接取决于晶振速度,系统稳定,特别适合高速接口电路。 FPGA是用来设计芯片的芯片 单片机: 单片机是一种微处理器,类似于电脑CPU的,它一般采用的是哈佛总线结构,或者冯诺依曼结构, 对单片机的编程很大程度上要考虑到它的结构和各个寄存器的作用,单片机用途比较广,一般用在控制流水线上 单片机是没有系统的,单片机是一个微控制器,通过加载模块软件来实现某种功能,单片机是成型的芯片 arm:arm可以说是单片机的一种,但arm的ROM和RAM远大于单片机, 而且IO口功能和处理速度也是两个级别的,arm能上很多操作系统,所以arm常用来开发手机等多媒体产品 DSP: DSP是TI首创的数字信号处理器,主要是进行数字信号的处理和运算的,主频很高,有硬件乘法器,做FFT啊就很简单迅速, 是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。 一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等 DSP还有一个特色就是对一些特殊算法的支持如快速福利叶变换等

cc2530单片机的第一次实验,流水灯

亡梦爱人 提交于 2019-12-05 07:44:23
第一个实验:控制流水灯 电路图 P1_0,P1_1,P0_4都连接在发光二极管的负极,所以,当这三个引脚为低电平,也就是0的时候,相应的发光二极管才会亮。 实验相关寄存器 其实这里可以稍微的关注一下寄存器的地址,然后,编程的时候可以尝试操作一下! |0|0|0|0|0|0|0|0| 控制发光二极管的步骤 graph TD id1[设置相应的引脚为通用口也就是设置PnSEL寄存器] id2[设置相应的引脚为输出也就是设置PnDIR寄存器] id3[设置上拉下拉电路] id4[设置相应引脚的值也就是设置P1_0 P1_1 P0_4的值] id1-->id2 id2-->id3 id3-->id4 程序的思路 graph TD id1(开始) id2[初始化] id6[延时] id3[LED1亮] id7[延时] id4[LED2亮] id8[延时] id5[LED3亮] id9[延时] id1-->id2-->id6-->id3-->id7-->id4-->id8-->id5-->id9 初始化: //置零用&=,置一用|= P1SEL&=~0x03; //设置P1_1和P1_0为通用接口 1111 1100 P0SEL&=~0x10; //设置P0_4为通用接口 1110 1111 P1DIR|=0x03; //设置P1_0与P1_1为输出 0000 0011 P0DIR|=0x10

STM32笔记四

会有一股神秘感。 提交于 2019-12-05 04:23:30
1.时钟振荡器:产生时钟信号送给单片机内部各电路,并且控制这些电路,使它们有节拍的工作。 2.ROM是一种具有存储功能的电路,断电后信息不回丢失。RAM也是一种存储电路,断电后信息丢失。 3.串行通信口是单片机和外部设备进行串行通信的接口。串行传递数据是一位一位的进行传递,同时传输多位数据的方式成为并行通信。 4.电子电路图:是指按照统一的符号用导线将电源、开关(电键)、用电器、电流表、电压表等连接起来。它是一种反映电子产品和电子设备中各元器件的电气连接情况的图纸。 5.STM32的全部寄存器都可以实现位带操作。可以通过指针的形式访问位带别名区地址来操作位带区。 6.栈是用于局部变量、函数调用、函数形参等的开销,栈的大小不能超过内部SRAM的大小。堆主要用于动态内存的分配。 7.向量表在地址空间中的位置是可以设置的,通过NVIC中的一个重定位寄存器来指出向量表的地址。 8.时钟的一般配置:SYSCLK=PLLCLK(设置PLL倍频,PLL时钟来源为HSE)=HCLK(设置AHB分频因子)=PCLK2(设置APB2分频因子)=72MHz;PCLK1(设置APB1分频因子)=HCLK/2=36MHz。 9.配置中断的时候一般使用ISER(使能中断)、ICER(清除中断)和IP(设置中断优先级)这三个寄存器。 10.RS-232标准主要规定了信号的用途、通信接口以及信号的电平标准。 11

【蓝桥杯|单片机组】| 数码管与LED流水灯动态显示

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 17:54:32
void LedScan() { /*数码管操作*/ static unsigned char i=0; static bit ledflag=0; static unsigned char j=0; P2=(P2&0X1F)|0X80; P0=0XFF; P2&=0X1F; P2|=0X90; P0=0XFF; P2&=0X1F; P2&=0X1F; P0=0X80>>i; P2|=0XC0; P2&=0X1F; P0=LedBuff[i]; P2|=0Xe0; P2&=0X1F; /*LED操作*/ if(led1000>=1000) { led1000=0; if(ledflag==0) { P0=~(0X01<<j); //LED亮 P2|=0X90; P2&=0X1F; ledflag=1; j++; // j 自加的位置很关键,若置于与led1000同一位置内,小灯一次点亮的顺序是LED1->LED3->LED5->LED7 } // 这是因为小灯在熄灭的同时j也会自加一次,从一个LED到下一个LED实际j自加了两次 else if(ledflag==1) { P0=0xff; //LED 灭 P2|=0X90; P2&=0X1F; ledflag=0; } if(j==8) j=0;} i++; if(i==8) i=0; } 讲LedScan()置于中断函数即可

51单片机入门教程(4)——按键控制

岁酱吖の 提交于 2019-12-04 17:54:21
51单片机入门教程(4)——按键控制 一、独立按键 1.1 独立按键的原理 1.2 独立按键的仿真电路 1.3 按键消抖 二、矩阵键盘 2.1 矩阵键盘原理 2.2 矩阵键盘扫描原理 2.3 矩阵键盘扫描程序 单片机与外界的信息交互主要有两大类,输入信息和输出信息。 之前的博客介绍了通过单片机控制LED灯和数码管向外界输出信息,该教程介绍单片机常用的输入设备——独立按键和矩阵键盘。 一、独立按键 1.1 独立按键的原理 独立按键一共有四个针脚,两个短针脚之间默认不导通,两个长针脚之间默认导通。实物图如图: 1.2 独立按键的仿真电路 在Proteus中对按键进行了简化,只有两个接线针脚。按键的一端接到单片机的IO口上,另一端与GND连接。当按键按下时,单片机的IO口与GND连接,端口电平被拉低。因此通过读取端口电平即可获知按键状态。 仿真电路如图: 1.3 按键消抖 关于 按键抖动 : 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。即单片机在按键被按下的一瞬间检测到的信号是 很多次的忽高忽低的电平信号 ,如图: 这种信号是不稳定的。因此,我们需要使用按键消抖的算法使单片机获取到正常稳定的信号。 为了避免在最不稳定的时候采集信号,常用的操作是延时,即当检测到低电平输入时,延时若干时间