设计与开发

单片机 笔记本 几款主流单片机优缺点对比

小编 2024-10-23 设计与开发 23 0

几款主流单片机优缺点对比

单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相当的迅速,从上世纪80年代,由当时的4位8位发展到现在的各种高速单片机。

各个厂商们也在速度、内存、功能上此起彼伏,参差不齐。同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…… 除此之外国内厂商的STC单片机也是可圈可点。

下面为大家带来51、MSP430、STM32、TMS、PIC、AVR、STC单片机之间的优缺点比较及功能体现。

51单片机

应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。目前在教学场合和对性能要求不高的场合大量被采用。

特点

51单片机之所以成为经典,成为易上手的单片机主要有以下特点:

从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便。乘法和除法指令,这给编程也带来了便利。很多的八位单片机都不具备乘法功能,做乘法时还得编上一段子程序调用,十分不便。

缺点

51单片机虽然是经典但是缺点还是很明显的

AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担。虽然I/O脚使用简单,但高电平时无输出能力,这也是51系列单片机的最大软肋。运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利。51保护能力很差,很容易烧坏芯片。

MSP430单片机

MSP430系列单片机是1996年开始推向市场的一种16位超低功耗的混合信号处理器,给人们留下的最大的亮点是低功耗而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手。主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。在低功耗及超低功耗的工业场合应用的比较多。

特点

MSP430单片机其迅速发展和应用范围的不断扩大,主要取决于以下的特点。

强大的处理能力,采用了精简指令集(RISC)结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。在运算速度方面,能在 8MHz 晶体的驱动下,实现 125ns 的指令周期;16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 FFT 等)。超低功耗方面,MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处;电源电压采用的是 1.8~3.6V 电压,因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200~400uA 左右,时钟关断模式的最低功耗只有 0.1uA。

缺点

可能不太容易上手,不适合初学者入门,资料也比较少,只能跑官网去找。占的指令空间较大,因为是16位单片机,程序以字为单位,有的指令竟然占6个字节,虽然程序表面上简洁, 但与pic单片机比较空间占用很大。

STM32单片机

由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名。

特点

STM32单片机其强大的功能主要表现在:

内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法。存储器:片上集成32-512KB的Flash存储器;6-64KB的SRAM存储器。时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压;POR、PDR和可编程的电压探测器(PVD);4-16MHz的晶振;内嵌出厂前调校的8MHz RC振荡电路,内部40 kHz的RC振荡电路;用于CPU时钟的PLL;带校准用于RTC的32kHz的晶振。调试模式:串行调试(SWD)和JTAG接口;最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口。

TMS单片机

这里也提一下TMS系列单片机,虽不算主流。由TI推出的8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合。虽然没STM32那么优秀,也没MSP430那么张扬,但是TMS370C系列单片机提供了通过整合先进的外围功能模块及各种芯片的内存配置,具有高性价比的实时系统控制。同时采用高性能硅栅CMOS EPROM和EEPROM技术实现。低工作功耗CMOS技术,宽工作温度范围,噪声抑制,再加上高性能和丰富的片上外设功能,使TMS370C系列单片机在汽车电子,工业电机控制,电脑,通信和消费类具有一定的应用。

PIC单片机

PIC单片机系列是美国微芯公司(Microship)的产品,共分三个级别,即基本级、中级、高级,是当前市场份额增长最快的单片机之一,CPU采用RISC结构,分别有33、35、58条指令,属精简指令集。

同时采用Harvard双总线结构,运行速度快,它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期,这也是高效率运行的原因之一。

特点

PIC单片机之所以成为一时非常热的单片机不外乎以下特点:

具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路,I/O脚增加了用于设置输入或输出状态的方向寄存器,从而解决了51系列I/O脚为高电平时同为输入和输出的状态。当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。相对于51系列而言,这是一个很大的优点。它可以直接驱动数码管显示且外电路简单。它的A/D为10位,能满足精度要求。具有在线调试及编程(ISP)功能。

缺点

其专用寄存器(SFR)并不像51系列那样都集中在一个固定的地址区间内(80~FFH),而是分散在四个地址区间内。只有5个专用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4个存储体内同时出现,但是在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。数据的传送和逻辑运算基本上都得通过工作寄存器W(相当于51系列的累加器A)来进行,而51系列的还可以通过寄存器相互之间直接传送,因而PIC单片机的瓶颈现象比51系列还要严重,这在编程中的朋友应该深有体会。

AVR单片机

AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短指令执行时间为250~125ns。

特点

AVR单片机能成为最近仍是比较火热的单片机,主要的特点:

AVR系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些都比51系列出色些。AVR的专用寄存器集中在00~3F地址区间,无需像PIC那样得先进行选存储体的过程,使用起来比PIC方便。AVR的片内RAM的地址区间为0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄存器的功能。当程序复杂时,通用寄存器R0~R31就显得不够用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种感觉。AVR的I/O脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。这点虽不如PIC,但比51系列还是要优秀的。

缺点

是没有位操作,都是以字节形式来控制和判断相关寄存器位的。C语言与51的C语言在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习惯。通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。

Freescale单片机

主要针对S08,S12这类单片机,当然Freescale单片机远非于此。Freescale系列单片机采用哈佛结构和流水线指令结构,在许多领域内都表现出低成本,高性能的的特点,它的体系结构为产品的开发节省了大量时间。此外Freescale提供了多种集成模块和总线接口,可以在不同的系统中更灵活的发挥作用。

特点

Freescale单片机的特有的特点如下:

全系列:从低端到高端,从8位到32位全系列应有尽有,其推出的8位/32位管脚兼容的QE128,可以从8位直接移植到32位,弥补单片机业界8/32 位兼容架构中缺失的一环。多种系统时钟模块:三种模块,七种工作模式。多种时钟源输入选项,不同的mcu具有不同的时钟产生机制,可以是RC振荡器,外部时钟或晶振,也可以是内部时钟,多数CPU同时具有上述三种模块;可以运行在FEI,FEE,FBI,FBILP,FBE,FBELP,STOP这七种工作模式。多种通讯模块接口:Freescale单片机几乎在内部集成各种通信接口模块:包括串行通信接口模块SCI,多主I2C总线模块,串行外围接口模块 SPI,MSCAN08控制器模块,通用串行总线模块(USB/PS2)。具有更多的可选模块:具有LCD驱动模块,带有温度传感器,具有超高频发送模块,含有同步处理器模块,含有同步处理器的MCU还具有屏幕显示模块OSD,还有少数的MCU具有响铃检测模块RING和双音多频/音调发生器DMG模块。可靠性高,抗干扰性强,多种引脚数和封装选择。低功耗、也许Freescale系列的单片机的功耗没有MSP430的低,但是他具有全静态的“等待”和“停止”两种模式,从总体上降低您的功耗!新近推出的几款超低功耗已经与MSP430的不相上下。

STC单片机

说到STC单片机有人会说到,STC也能算主流?基于它是国内还算是比较不错的单片机来说。STC是单时钟/机器周期的单片机,说白了STC单片机是51与AVR的结合体,有人说AVR是51的替代单片机,但是AVR单片机在位控制和C语言写法上存在很大的差异。

而STC单片机结合了51和AVR的优点,虽然功能不及AVR那么强大,但是在AVR能找到的功能,在STC上基本都有,同时STC单片机是51内核,这给以51单片机为基础的工程师们提供了极大的方便,省去了学习AVR的时间,同时也不失AVR的各种功能。

STC单片机是高速、低功耗、超强抗干扰的新一代8051单片机51单片机,指令代码完全兼容传统8051,但速度快8~12倍,内部集成MAX810专用复位电路。4路PWM 8路高速10位A、D转换,针对电机电机 的供应商控制,强干扰场合,成为继51单片机后一个全新系列单片机。

特点

下载烧录程序用串口方便好用,容易上手,拥有大量的学习资料及视频,同时具有宽电压:5.5~3.8V、2.4~3.8V, 低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)。STC单片机具有在应用编程,调试起来比较方便;带有10位AD,内部EEPROM,可在1T/机器周期下工作,速度是传统51单片机的8~12倍,价格也较便宜。4通道捕获/比较单元,STC12C2052AD系列为2通道,也可用来再实现4个定时器或4个外部中断,2个硬件16位定时器,兼容普通8051的定时器。4路PCA还可再实现4个定时器,具有硬件看门狗、高速SPI通信端口、全双工异步串行口,兼容普通8051的串口,同时还具有先进的指令集结构,兼容普通8051指令集。

硬件笔记本,一起学习电路设计、PCB设计、仿真、调试以及EMC知识

更多干货文章请点击关注:

搞懂元器件,就搞懂了电路的一半

一起学习吧:

硬件笔记本|加群

声明:本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。

假如,我变成了单片机…

以下文章来源于21ic电子网 ,作者呐咯密密

嗞~~~~~

一股温和的电流流进了我的身体,我从沉睡中醒来,感受着心脏稳定的跳动,我的大脑高速的运转着,我感觉到了他的运转速度,很快,非常快,一秒几十兆的运算速度,我感觉我无所不能。同时,我拥有了几十上百个手脚。我,是单片机?

渐渐地,我也发现了我的缺点,我好像脑容量比较小,感觉不能记得很多东西,我虽然思维活跃,但是好像能量很小,我的能量全来自于唤醒我的那股温和的电流,他虽然稳定,但是他所能够提供的能量很少,我可以灵活地抬放我的手脚,但是它们好像并不能拎起多大多大物体,我好像一无是处。

单片机又称微控制器,是把中央处理器(大脑)、存储器(脑缘系统)、时钟(心脏)、各种输入输出接口(手脚口)等都集成在一块集成电路芯片上的微型计算机。一般单片机的内存较小,输入电压较低,通常为3.3v-5v。运行速度(主频)在几十兆赫兹到几百兆赫兹不等。

▲STM32F103xx增强型模块框图

随着环境的变化,我突然觉得胸口发蒙,温度太高或者太低都让我的心跳异常,经常犯错。但是我却无可奈何,此时我听到了一个声音:你名为单片机,乃是科技的结晶,虽然你现在像个小丑,但是你可以去闯副本,解锁新的皮肤,新的地图。于是我便沉沉睡去。

当我再起醒来,我感觉背上剧痛,什么!有人在给我纹身,难道是“精忠报国”?难道我将驰骋沙场,立不世之功!原来我的副本是为了保家卫国……

后来我才知道,背上纹的是STM32F103RB,这有个啥用啊,哎~

我没想到,这个皮肤有种魔力,让我解锁了新的地图——开发板。

在这个地图上,我拥有了另一颗心脏,一个我似乎可以使用外部的心脏,那家伙挺厉害,很多我适应不了的环境他都可以,不容易产生心跳紊乱,我只需要在我醒来时启动它便好,可好用了。

现在32位单片机内部都会集成一个晶振,即使不外挂晶振也可以正常工作,但是内部晶振收环境影响较为严重,在一些极端场合可能会造成较大的误差,所有一般应用都会外挂一个高精度晶振,可以使单片机更好的工作。

▲使用8MHz晶体的典型应用

探索新地图:

我虽然拥有了强力的心脏,可是我啥也不会呀,我怕黑,想开灯,但是我却无从下手,我看得到地图上有个灯,我不知如何打开,直到我遇到了一个神奇的动物——程序猿。他有着人类一样的外边,但是怎么看怎么像牛,挺奇怪的。

那天,这个程序猿给了我一个开灯的说明书,这个说明书好复杂,让我做了好多事,最后让我用其中一个手拉一下开关就可以开灯,不明白为啥要这么麻烦。但是他有时候也给我很简单的说明书,里面只写了:伸手。然后灯就开了,好神奇。那之前为啥要给我那么复杂的说明书呢?

单片机本身不含任何功能,需要用户编写代码,编译成单片机熟悉的语言烧录进单片机才可实现功能。例如我们点灯,就让控制灯的引脚输出相应电平即可。

在ST的开发环境中,ST提供了多种开发方式:直接操作寄存器、标准库、HAL库、LL库。其中,寄存器的方式是最直接的方式,单片机的响应最快,代码执行效率最高,同时难度较高;LL库及其接近寄存器,效率次之;标准库对寄存器进行了封装,用户可以直接使用库函数实现功能,不能直面寄存器,是曾经最常用的方式;HAL库是开发最简单的方式,HAL库将寄存器和开发者隔离,开发难度特别小,但是也带来一个问题,就是执行效率相较于前几个更低。

当我会点灯之后,我发现自己的思维逻辑好像有问题,我总是一根筋,不会回头,做事只会按照一条线去做。好在程序猿给了我一份新的说明书,书中说道:苦海无涯,回头是岸。反正就是让我主线任务做完了再重新来过,还让我注意自己的手脚,他碰我不同的脚我得暂停主线去做支线任务。做完支线才能回来继续做主线任务。

说明书上还交代任务的紧急程度,碰我的1脚我得去做1号支线,如果没做完就碰我的2脚,那我得暂停1号支线去做2号支线的任务,等2号支线任务做完再回来做1号任务,直到两个任务都做完才能回去做主线任务

单片机就是一根筋,只会按照逻辑一直往下执行,当有紧急事件需要处理可借助单片机的中断系统来处理,单片机会暂停当前执行的任务,转向中断安排的任务,并在完成中断后返回之前跳转到节点。

▲中断嵌套及响应示意图

如上图所示,当中断发生,单片机会将中断发生时刻的状态和参数保存进堆栈,通过中断向量的指引去完成中断的服务任务,执行完中断服务任务后会返回之前的被打断的指令,然后继续向下执行。当正在执行的中断函数遇到更高优先级的中断请求到来,当前的中断任务保存,跳转执行更高优先级的任务,当高优先级的任务执行完成再返回之前的次优先级任务继续执行,直至中断任务全部执行完成后返回主程序。

那天,我发现了另外一块单片机,好不容易见到同类,好想和它聊天。于是,我向他呼喊(UART),但是只能发出1和0,它无动于衷。随后,程序猿给我一本词典(协议),我按照词典的介绍开始发音,但是对方的语言能力可能不是很好,我说的快了它反应不过来,说的慢了它会漏掉我的话(波特率匹配)。在尝试许久后终于见它有反应了,我也收到了它的回复,它也只会说什么1啊,什么0啊之类的,我只能考词典进行翻译(转码),但是也只能它说一句我回一句,就像对讲机一样(异步串行通信),好在虽然比较麻烦,总算能聊上了。

随着时间的推移,我们之间的距离越来越远,说话都是断断续续的,即使我叫破了喉咙也不顶用(远距离通信),于是我俩想办法找到了扩音喇叭(RS485芯片),这玩意自带能量供给,不需要我们提供(单独供电),我只需要正常说话,他就会给我放大,即使隔得很远我们也能说话。但是不知怎么的,我们的距离越来越远,远到靠扩音喇叭都无法起作用,但是难不倒我们,我们又找来更先进的设备——无线通信模组,通过这类设备,我们可以实现天南地北通话无误。

在嵌入式开发中,UART串口通信协议是我们常用的通信协议之一,全称叫作通用异步收发传输器(Universal Asynchronous Receiver / Transmitter),是异步串口通信协议的一种,其工作原理是将传输数据的每个字符一位接一位地传输,它能将要传输的资料在串行通信与并行通信之间加以转换,能够灵活地与外部设备进行全双工数据交换。UART的通信需要遵守通信协议,同时匹配波特率,才能进行正常的通信。可以将通信过程按下图想象:

▲正常通信

UART发送数据就类似打开门放数据出去,波特率就是控制打开门的速度,当发送方按照一定的速率放出数据,接收方也按相同的速度开关自己的闸门,那数据就刚好可以一个个进来。如果接收方和发送方的波特率不一样,就可能出现数据当接收方门口的时候门关了,数据进不去,导致接收异常。

▲通信异常

当通信双方距离较远,通信就会受阻,此时可采用485通信,485的出现,是为了解决232通信距离受限的问题。RS-485的数据最高传输速率为10Mbps。RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。

RS-485最大的通信距离约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

485通信只需要+、-两根线,或者也叫A、B两根线。A、B两根线的差分电平信号就是作为数据信号传输。由于发送与接收都是用这两根线,也就是说每次只能用作发送或者只能用作接收。所以,485是半双工通信。

▲RS-485通信

但是这样说话好累啊,我想发出声音怎么办呢?这时我发现自己有一个手上拿着一个蜂鸣器(无源他激型),只要我拼命地摇动,他就会发出声音,我摇动的频率不同,发出的声音就不同,这样我就可以发出不同的声音了,我甚至还可以给自己来首曲子(方波信号输入谐振装置转换为声音信号输出)。就是比较累,我还得算着时间来摇动。

音乐都有了,我还要灯光,可是我手上的灯只能发出一种颜色,要么让他亮,要么要他灭,于是我找到了身上的定时器,我可以让它控制我的手去开关灯(PWM输出),在一定时间内多让灯多亮一会,再关掉,控制打开和关闭的时间灯光就会一会亮,一会暗,但是可能我动作得快点(频率大于人眼捕捉频率),不然会一闪一闪的,这好酷啊(动态更改PWM占空比)。

渐渐地,我觉得我还是养一条狗比较好,因为上次我做错事了,但是我钻牛角尖,不愿意放弃,一直死等(程序卡死),导致后面好多事都耽搁了,还导致自己差点出事。决定还是养个看门狗(就是看门狗),每隔一段时间就去喂狗,它不饿就不会叫,我要是钻牛角尖了,就会忘了喂狗,这样他就会叫,我听到狗叫就会反应过来的。

但是,有问题我也得解决不是,我可以把这件事记在身上的本子上(写FLASH),这样以后就能看看到底咋回事了。但是我的笔记本挺不好用的,每次都得把这一页擦掉才能写,而且最少得擦掉一页。但是还是很必要的,因为我每次昏睡后(掉电)都会丢失一些数据(掉电会丢失RAM数据),为了防止我忘记也可以写在上面。但是我的脑子可能真的有问题,每次再做笔记时总是会屏蔽其他的声音,谁都不能打扰我。

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watchdog)。

看门狗的作用是系统CPU正常工作时定时给看门狗喂狗,复位定时器,如果系统出问题,没有给看门狗喂狗,看门狗就由于超时将CPU复位。一般工程都会使用两个看门狗,一个是独立看门狗,主要用于在代码跑飞之后复位使用,一个是窗口看门狗,主要用于在复位前对于一些重要数据进行保存。小数据量一般可以保存进单片机自己的FLASH中,下次上电还会存在。

注意:

1、每一款单片机的FLASH的大小不尽相同,在操作FLASH之前一定要根据手册确定手里的单片的FLASH的大小,超出FLASH容量的写操作是不被允许的,也无法成功完成数据写入。

2、计算好程序的内存,程序也是保存在FLASH中,如果没有计算好程序的大小,将写FLASH写入程序占用的内存中,会导致程序奔溃。

3、写数据之前必须先对页进行擦除,因为FLASH不能写1,只能写0,所以写之前要通过擦除操作将FLASH页中的数据全部恢复为FF,才能进行写操作,如果该FLASH中存在需要的数据,必须要先将数据读出来存在缓存区,再将页擦除,再进行写数据。

4、数据不超过一页,可连续写入。

5、注意FLASH的操作单位,每次最少写4个字节,可通过手册查询页的大小,因为一般采用的是整页的擦除和写入,不可随意擦写。

6、操作FLASH时会占用总线,会打断你的中断操作,且写FLASH时间一般较长,所以在操作FLASH时要保证单片机预留出足够的时间。

7、详情参见帖子:国民技术G435大容量FLASH让你储存离线数据不必节衣缩食(地址:https://bbs.21ic.com/icview-3208110-1-1.html)

我觉得我还有很多很多的很强很强的能力等我发现,但是我突然觉得体内的能量越来越少,渐渐感觉头晕眼花,我可能需要休息一会,不知道小憩一下会不会恢复(睡眠模式),不行的话,可能我要好好睡个觉了(深度睡眠),如果能量再少下去我可能就睡昏头了(待机模式),这样再醒来可能之前的事我就全忘记了(停机模式下会丢失RAM数据)。

呼呼~~

1、睡眠模式: 在睡眠模式中,仅关闭了内核时钟,内核停止运行,但其片上外设,CPU核心的外设全都还照常运行,在软件上表现为不再执行新的代码。这个状态会保留睡眠前的内核寄存器、内存的数据。唤醒后 ,若由中断唤醒,先进入中断,退出中断服务程序后,接着执行 WFI指令后的程序;若由事件唤醒,直接接着执行 WFE 后的程序。唤醒延迟:无延迟。(WFI:Wait For Interrupt,WFE:Wait For Event)。

2、深度睡眠模式(停止模式): 在停止模式中,进一步关闭了其它所有的时钟,于是所有的外设都停止了工作,但由于其 1.2V 区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所以从停止模式唤醒,并重新开启时钟后,还可以从上次停止处继续执行代码。

唤醒后,若由中断唤醒,先进入中断,退出中断服务程序后,接着执行 WFI指令后的程序;若由事件唤醒,直接接着执行 WFE 后的程序。

停止模式唤醒后,STM32会使用 HSI(f1的HSI为8M,f4为12M)作为系统时钟。所以,有必要在唤醒以后,在程序上重新配置系统时钟,将时钟切换回HSE。

唤醒延迟 :基础延迟为 HSI振荡器的启动时间,若调压器工作在低功耗模式,还需要加上调压器从低功耗切换至正常模式下的时间,若 FLASH 工作在掉电模式,还需要加上 FLASH 从掉电模式唤醒的时间。

3、待机模式: 它除了关闭所有的时钟,还把 1.2V区域的电源也完全关闭了,也就是说,从待机模式唤醒后,由于没有之前代码的运行记录,只能对芯片复位,重新检测 boot条件,从头开始执行程序。

作者:呐咯密密

来源:21ic论坛

硬件笔记本,一起学习电路设计、PCB设计、仿真、调试以及EMC知识

更多干货文章请点击关注:

搞懂元器件,就搞懂了电路的一半

一起学习吧:

硬件笔记本|加群

声明:本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。

相关问答

单片机 开发板 笔记本 可以用吗, 笔记本 没有那个并口可以用吗?-Z...

可以的,你的单片机是什么的??51?61?有USB就行啊,自己做个USB下载器..就OK了...组装笔记本您真好有才啊您这个价位的档次只能是上网本开发单片机你预算的...

单片机 能用什么样的 笔记本 电脑?

学单片机可以使用各种类型的笔记本电脑,但以下几款笔记本可能更适合:惠普战66六代酷睿版:这款笔记本采用了12核16线程的i5-1340P处理器,性能较好,能够满足...

要用来学习 单片机 ,还有一些matlab之类的软件,应该买什么电脑呢,预算5000左右?

学习单片机、MATLAB配置不需要有多高,相对来说占系统资源比较少,价格5000的绰绰有余了。我也是做嵌入式单片机的,我一直使用的是Dell笔记本,到现在都没出过啥...

我想要买上一个 笔记本 ,本人是自动化专业学生,喜欢 单片机 还有...

如果是学习plc和单片机等工控软件的话,运行内存4g,cpu四核处理器,硬盘500g就可以了。系统最好是windosXP最好。因为好多工控软件都是建立在XP系统的,WIN7,WI...

大二学 单片机 和自动化制图,买什么 笔记本 好,够用就行?

学习单片机、自动化制图软件配置不需要有多高,相对来说这些占系统资源比较少,价格4000-5000的绰绰有余了。我也是做嵌入式单片机的,我一直使用的是Dell笔记本...

pc和 单片机 的联系?

pc一般指个人计算机。个人计算机是指一种大小、价格和性能适用于个人使用的多用途计算机。台式机、笔记本电脑到小型笔记本电脑和平板电脑以及超级本等都属于...

电子科技工程学生买什么电脑?

答:电子科技工程学生建议买的电脑上ThinkBook14联想笔记本电脑,比如ThinkBook14锐龙版轻薄本14英寸。1.硬件开发方面用到的软件主要有:电路图设计软...

学物联网用什么 笔记本 电脑好?

物联网工程专业,主要学习嵌入式编程(C/C++、Java),嵌入式通常要学习linux,以及单片机、模拟电路等等。其实对电脑配置要求并不高,一哥认为,用不到7000元...

计算机专业学习 单片机 是否有益-ZOL问答

笔记本电脑讨论回答(9)单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存...

学软件开发的大概需要什么配置的 笔记本 ??推荐几款!!-ZOL问答

首先,笔记本电脑的显示屏都很差劲的,如果你可以忍受的话.....我自己也在用华硕A53,到现在已经用了3个月了,一切正常,没有出现有些人说的硬盘门啦屏幕门啦这些乱...

猜你喜欢